2,971 karma · joined July 16, 2009
You can follow me on Twitter at @bphogan or contact me at bphogan at gmail
But what's bothering me about this is that it's not a small company doing this. It's a company that's got crazy amounts of cash, who has been trying to trade on a "we're nice now and we love open source" image in the last few years, now taking all the open source code and balling it up in a closed-source app they will charge us for.
I'd be fine if I got to use it for free, extend it to whatever editing platform I like through its open API, and it was a part of an open project.
But right now it looks like they'll charge, and that bugs me.
Your version control system and ticketing system should be able to identify things like this.
If not, then nobody's minding the store, and that's why things aren't working. Not cos people are working remotely.
Some humans do not think on their feet. They often need time to digest thoughts and new ideas. If you start observing this behavior, you will notice that an impromptu brain-storming session often results in a couple of people talking and many others observing.
It ends up being highly productive to the people talking, and very frustrating to those who are observing.
If you don't see this trend, your hiring practices may be optimized for finding only one type of person - extroverted people who can say things quickly.
Consider that you may be missing out on some very good ideas from people who aren't comfortable with quick context switches and immediate requests for feedback on ideas.
According to audience feedback I've collected, my talks where I do a lot of live coding are engaging and fun. But that's cos I practice, and I put effort into the talk.
The key to a good presentation is to polish it and engage the audience. It's part teaching and part performance, and if you don't do both of those well, you'll lose people. Ask the audience questions to get them involved at key places. Practice so you know the timing of things.
If you just show slides or just live code, you're probably better off recording a youtube video, tweeting it out, and spend conferences enjoying the hallway track. :)
It's amazing to me how people think Slack is this amazing tool. If someone had thrown millions of dollars at IRC, it wouldn't suck.
But instead, you'll fork over your personal info and insist I do too.
I run an office hours chat for my online classes powered by IRC. I use KiwiIRC as the front-end.
Students need only the web address of the web page I want them to go to. When they get there, they need only a username.
No signup, no verification, none of that. They're online, getting help in seconds.
Individual public channels requiring nickserv registration and all that? that's another story.
But seriously - the barrier to entry to get started is this:
https://kiwiirc.com/client/irc.freenode.net/?##irc_can_be_ea...
Isn't it cool to have choices? I don't care if it's not cool to use jquery anymore. I shipped stuff and I'm not even sorry.
This was the case with jQuery, Angular, and things that came before.
I see two main problems in software development, especially on the front-end. First, developers jump on brand-new ground-breaking frameworks and use them in production, learning how they work as they go. This results in brittle systems. That's not necessarily bad, but it's not always great from a maintenance perspective. React is hot right now. But there are a ton of in-production Angular 1.x apps out there because that was what was hot when those projects started.
That brings me to the second problem in tech - developers doing the "hot new thing" displaying a ton of hubris. It's "easy" and "straightforward", implying that anyone who doesn't get it just isn't smart or will be obsolete soon.
I'd worry more about losing my job due to not keeping up with machine learning rather than not learning whatever new JS framework people think is hot right now.
Here's the deal - web developers figured out server-side rendering 20 years ago, and managed to make turning databases into web pages easy about 12 years ago. It's possible to create applications that people love using a lot of that technology, with some JS on top. It's certainly faster to go to market with something that way.
Not every app is Facebook. A lot of the stuff people work on outside of HN fall into one of two categories:
1. Apps that are behind a firewall - internal in nature, used by a handful of enterprise users. 2. Apps that won't be around in 3 years from now because the company will shift focus/replace it with an off-the-shelf product/company gets acquired.
In both those cases, I'd look for the simplest approach to get something running, and simplest to maintain.
Bottom line: it's easier to leverage existing skill-sets than it is to ask people to learn a whole new thing all the time.
Anyway, at the end of the day, I don't really get too worked up about how another person chooses to solve the "make the browser display a web app." Every situation is different. React can be simple. So can server-side rendering with some Knockout/Stimulus/Intercooler/jQuery sprinkled around.
Maintainable quality code that makes money wins in the long run. Whatever you implement it in.
I also didn't notice if she went full time or not. I had many students who took 4 years to get a single degree, because they only took 3-5 credits a term. Our program was 68 credits. They worked 40 hours a week.
I had young adults in my class who would attend every 8AM class - never missed a day. But they never turned in work. I asked a few of them why. Same story: "If I'm going to school, my parents stop harassing me." Other students didn't know what they wanted to do, but being in school deferred student loan payments, so they just kept enrolling on purpose, kicking a can down the road.
There are a lot of young people who do not know what they want to do in life. Heck, there are older folks like me who still don't.
I miss the hell out of teaching, but I don't miss seeing students go into massive debt aimlessly floundering their way through school. And I don't like that colleges take advantage of that fact either.
> Like many students, she took classes she didn’t need, partly due to poor advising and partly because she was feeling her way toward a major.
I taught at a community college. A lot of people there are really just feeling around for what to do with their lives. A lot of them also didn't do so well in high school and needed to skip ACT/SAT requirements to get in to a 4 year school to do what they really needed. This translates into lots of general ed classes/GPA boosters.
When a student doesn't know what they want to do, it's hard to give them good advice. And if they didn't take school seriously in high school, it's harder for them to start doing it more seriously now.
Combine that with not knowing where you're sleeping that night, or trying to concentrate on an empty stomach, and yea, it'll take you a while to dig out.
I learned a lot of empathy teaching at a community college. Now, sure, we could talk about "personal responsibility", but there are a lot of things at play here. Lots of responsibility to share.
You can even execute a shell script and put the results in there.
The current version makes you authenticate with a username and password or google login as I made this to share some songs with someone who wanted to license them from me.
https://github.com/napcs/s3server
I am hacking on a branch this week that will support publicly sharing a directory. If anyone wants to hack on this, I'd love it. It's pretty minimal right now but it's open source and it works, so ¯\_(ツ)_/¯
IDK what they do nowadays. I only release a new song every couple of months.
(shameless plug: soundcloud.com/bphogan)
I believe that the models that will be successful are models where there is curriculum designed to be done asynchronously, with ample time for practice and repetition to build skills, followed by assessment and feedback.
You do not need a classroom for this. A wise man once told me that a good teacher is not the sage on the stage, they are the guide on the side. And that's what adults need. They don't need to all sit in a room together being held back cos one person doesn't understand it. Lecture and talking and demos can all be done online on Youtube.
Or you make a web site, write some content and make some videos, give some practice problems with unit tests that tell the student if they got them right. Easy peasy. Nobody's time is wasted.
The third part is the part that doesn't scale - you need people to provide coaching and feedback. And you need one on one time to discuss feedback, options, choices, etc.\
Think about this:
If I tell you to make me a five page web site with a contact form, appropriate color scheme, valid semantic markup, clean CSS, appropriate color scheme, and content, then I have to do the following:
1. Develop lessons to give you the information on how to do these things 2. Give you ample opportunities and time to practice and excel at these things individually 3. Give you detailed feedback on your practice so you can practice more 4. Give you the time to do the assessment well 5. Review your work and give you detailed feedback on it so you learn.
Notice that I start with an end in mind, then work it out to get you to be successful - I don't just start teaching you a bunch of stuff and then make up some test... it's all planned out.
So the curriculum design takes time and planning. It's an art and science of its own and we learn new things about how people learn all the time. But a small group of folks can take the time to put curriculum together. There are people who study this for a living. They're not subject matter experts though, so you kinda do need both.
But notice all the places where there's review and feedback. That's the part that doesn't scale. That takes time. It takes a LONG time to give good, detailed feedback to a learner so they can improve. Your job isn't to fail them - it's to make sure they're successful - if they do their part and you do yours, they will be. (Obviously if you only put an hour into this final project there won't be much for me to give feedback on, so the learner has to put in the effort too) But you are their guide on the side, not the keeper of all knowledge that they must appease.
So to find people who are caring individuals who can be these instructors, who can help people understand the curriculum, who can coach them through the process, who can meet with them... that doesn't scale. People will need to be compensated for this. With benefits so they don't have to worry about their own well-being as well as their students'. But if you can figure out a way to scale this and finance it, it would work well. I interviewed for and was offered a position at a bootcamp that had a model very similar to this, but they were doing a commission-based salary based on number of students that chose you as their coach, so it was too risky for me. I hear they changed their model tho and are doing well. Hopefully more places will catch on.
Bottom line - good curriculum designed with outcomes in mind from the start, with everything aligned, is a good start. But learning happens through practice and feedback - I don't care how many times you read the book or watch the Pluralsight videos - you won't learn it till you practice it, do challenges someone else offers you, and internalize the feedback they give you once you're done.
Ah well... this got super ranty and I'm tired. I hope it makes sense. You can email me if you want to chat about this more. I'd be happy to do that.
Another thing to think about is this: Just cos you know SWE really well doesn't mean you have the ability to teach it to others. Not everyone "gets" things quickly, or will understand your explanations on the first attempt, so you must be patient. Not everyone learns the same way, nor do they have the same educational experiences, so you must be kind. And not everyone has a great home life, and has a ton of distractions that prevent them from learning, so you must be empathetic. Finally, not everyone loves to code - they just want the dollars that come from a job and will do whatever it takes to get there, including lie, cheat, and do the bare minimum, so you must be firm and strong to avoid burning out and thinking they're all terrible lazy students.
There are people who can do this. But they're rare. And even rarer when they see the low paychecks offered.