Ask HN: I will quit my job as a PM to join a coding bootcamp. Am I crazy?
I have an MBA from a top 3 school and have a high-paying job as a PM at a top 3 tech company. But I don't feel like I am building tangible skills as a PM, it is more about project management and coordinating. I think about the future and get excited about technology and the types of things you can build and contribute to if you know how to code (e.g. block chain, deep learning, etc.). I have a feeling tremendous opportunity will be available over the next 10 years to software developers while other disciplines such as management become less and less important. Am I crazy to make this career switch?
228 comments
[ 3.4 ms ] story [ 277 ms ] threadSeveral of the people in my cohort didn't become a developers though, as they didn't seem to have the proper motivation to put in the necessary work (at least not to manage it in a 3-5 month period).
You can read about my experience going from non-technical to technical here: https://medium.com/learning-new-stuff/from-non-technical-to-...
As for learning to code because of things like the blockchain, etc, keep in mind that bootcamps teach you to build web apps, not that level of programming.
I understand how having some social structure helps one learn, but I've often seen this misapprehension from PMs and MBAs that you either "know code" or you don't, and if one can just cross this chasm then all of a sudden you can be the one building things and realize your own vision. But in reality you won't be a good coder unless you have the tenacity to keep learning continuously over years and decades. Self-learning is not only free, but it's a good litmus test for this tenacity, and there's a huge amount of resources out there that make it trivially easy to get started.
The really interesting stuff usually requires deeper knowledge and skills. For problems worth solving, 15 years experience as a CRUD developer is no better than 15 years experience as a project manager. Making this career change won't necessarily help you gain the skills you want.
Business analyst is a different role.
Most bootcamps that I'm aware of are for training web developers, with a few going into mobile app development. That will give you some basic coding skill but is probably not going to get you very far in the direction you want to go.
You'd most likely be better off seeking an online CS degree.
> Most bootcamps that I'm aware of are for training web developers, with a few going into mobile app development.
Yeah, I'd actually be pretty interested in a bootcamp that teaches deep learning. AFAIK that doesn't exist, but it should (?)
So yeah, maybe the only way it could work is if you already know it. They just give you a refresher and find you a job.
Like "I don't feel like I am building tangible skills as a PM, it is more about project management and coordinating." Perhaps you are learning many tangible skills (just not ones you prefer). Also, "I have a feeling tremendous opportunity will be available over the next 10 years to software developers while other disciplines such as management become less and less important." That could be true, but maybe it won't be.
My 2 cents
The analogy is you wouldn't necessarily take the Olive Garden line cook training class if you wanted to be a French chef. Sure, it won't hurt to learn how to use a knife and it might be a decent Step 0, but it won't get you much of the way towards your goal.
You should really consider a more in-depth CS education, whether that's through a traditional university or something like a Coursera / Udacity nano degree in your areas of interest.
As a practical matter, it might be better to stay employed while you pursue that. But that's up to you. Plan on spending some significant time learning (1-2 years at least) before you can do what you want, not just a few weeks.
You're very smart to consider getting into something like deep learning. The opportunities will be good over the next 10 years like you said - but only for those who are really good at it. It's a very technical field that requires lots of continuing learning. The competition for the best jobs is high. Don't get into coding unless you are very excited about it and willing to invest in learning it for the rest of your life.
If you are excited about coding and willing to put years of learning into it, go for it! But otherwise you could take the impressive skills you already have and find a way to reinvent yourself and apply them in the deep learning industry without becoming the actual coder yourself.
Even as a former PM, PM's at your company will try to exert power over you if you are a dev. They will be backed up by executive management, board members, investors, the media who all have an interest in maintaining this outdated view of the programmer who takes the specifications and simply types in the code. Why not fire PM's and just hire PM's that code? PM's don't like that, executives (who don't code) don't like that, even the janitor doesn't like that. Nobody likes that except for devs and devs have no power in companies because of self reinforcing old school ideas about job roles.
Edit: Let me try a more helpful response (though I did intend to make a point there). You seem very focused on what you have: a good salary, a top 3 education, a job at a top 3 company. Things you expect should make you happy, basically, but you aren't, and this is confusing, and it's always scary to give it up if you haven't figured out why those things don't make you happy. But IMO, if that interpretation is correct, it's more important to attempt to find things that do make you happy rather than dwell too much on why the things you have, which are often equated with success in our culture, are not doing it.
We're in a period when everyone is "learning to code". This means the potential pool of developers (ignoring their actual talent levels) is growing.
Someone has to check whether the stuff people are making is following whet needs to be created. Someone has to be able to manage the teams of people making these things.
I'd suggest your premise is the wrong way round.
Most don't feel like they're building lasting career skills, as agism persists in the industry and most people work on web applications to satisfy enterprise project business specification and project managers. During lunch, I hear conversations about the future of technology and the type of technology that we can work on if we only quit to start or work for a cool start up (e.g., Tesla, SpaceX). The consensus is that there is a tremendous opportunity for these emerging technology area's while other disciplines such as closing JIRA tickets will become marginalized. So I'd advise you to stay away from the enterprise coding bootcamps and only apply for the specialized tech bootcamp that emphasizes on these emerging technologies. The few that come to the mind are, creating new cryptocurrency payment models (for Paypal), writing self-driving cars hardware/software (for Tesla) and harnessing deep/learning AI (for Google DeepMind).
I'm not a big fan of JIRA myself, but even cool startups need to use an issue tracker?
>> vi main.ex
>> # No tests needed thanks to BEAM ;)
>> git add -A
>> # No need for descriptive commit messages; we spend our time on the important stuff ;)
>> git commit -m 'New commit'
>> # Rockstars push straight to production
>> git push origin master
Am I doing this right?? /s
You have to self-tase one second for every commmit you blew away.
Top score is 4 seconds.
If you have conflicts on a feature branch I guess you aren't the only one working on it and as soon as that's the case force pushing is generally a bad idea unless you coordinate carefully with the test of the team.
The only time I ever force push is on a feature branch that only I work on and I want to amend the commit I just pushed a second ago.
I am not convinced. Instead, you'd need a reward for every cleanly committed line of code.
But elixir does not have main file so it is ok :p
Lots of enterprise coders are tasked with evaluating new technology, working on greenfields experiments, like building a Hadoop cluster or starting out an OpenStack test deployment. Other times, there are extremely specialized jobs in enterprises. I have some friends who write Erlang in enterprises, and they go home at 5, don't find the work too stressful, and have plenty of interesting problems to solve.
Yes, there's a lot of great tech to play with out there. You can do that on your own time as much as you can do that at an enterprise. Yeah, startups might be more inclined to work with this stuff, but they're also just as inclined to make a big tech mistake and end up 1 year down the wrong road.
Finally, I am not a fan of bootcamps to learn to code. I think they're fine to get you started, but I doubt you can actually make a real career out of just a boot camp. You'll need experience and a lot more real-world time to learn how things work when you're developing software with a dozen other people at the same time. It's a lot more complicated than just knowing how to write functions and use git.
Everyone I know who did a coding bootcamp and got a job, got a job doing the absolute most basic stuff imaginable: bug reports, bug fixes, testing, etc. There's a lot of stuff you won't learn at the bootcamp that needs to be done in an enterprise: compliance and governance work, requirements gathering, documentation development, CI/CD concerns, how to build and tweak a delivery pipeline, deployment stuff, provisioning stuff. There's a ton to learn in enterprise software development, and learning how to whip out a program in Ruby or JavaScript won't adequately prepare you. It may get your foot in the door, but expect another 2 years of working there before you'll be truly ready for a promotion or better job.
And, yes, ageism is a thing, but the absolute best programmers in the world tend to be over 50. They may not know JavaScript, but they can write an entire OS in assembly, and they tend to understand the hardware/software stack down to the bit. Old coders are absolutely incredible and wise. Anyone who is ageist in the valley against coders is really fucking themselves over.
I think the best bet for you is to do the coding boot camp, then go back to being a PM. Knowing how to actually write software is probably the most valuable skill a software dev PM can have: it'll make it a lot easier to understand why everything takes so damn long. It'll also make you much more appealing to a Google or a Facebook.
I also extremely disagree with the do a bootcamp and then go back to a pm. You will have wasted a lot of money and will definitely not absorb much. We have bootcamp grads who have done that and they forget everything they learned. You need at least a year of professional experience to really get any meaningful knowledge. Not recommended.
I conditionally disagree.
If the OP chose to do this, they should fully commit to it as if there is no other way if they want to succeed.
But, if the OP thinks they are crazy (and they definitely have doubts if they posted this here), they should indeed immediately take responsibility to hire a replacement and start interviewing elsewhere, hopefully in such a way that it will limit CV damage.
However, I can tell you that probably the most important thing we had going for us in terms of getting of the ground is my boss, our VP of Innovation. He's been with the company for a many years, and is generally very well regarded. He also works tirelessly to promote the lab and get the rest of the company involved.
We also have an HR manager, herself a long time company woman, and that's been essential for recruiting talented engineers and inters, as well as helping guys like me with the transition from startup land to an old school corporation.
Other than that, we're all full time engineers, plus interns from the local university, especially in the summer.
Tutorials on various common "patterns" (RoR web apps, iOS apps etc.) are of good quality and easily available these days. As a PM in big tech, you can try to find little ways to contribute into the product's code base, which will teach you both programming and engineering practices. In my experience (disclaimer: was a PM), engineers are delighted when PMs show interest in code, and at least a few would be excited to hand hold you through the process of setting up your dev box, building the product etc. It's not a bad way to get better while making hand and fist full of money.
That said, like any other craft and practice, programming is layered and specializes. It takes 5-10 years to be "good", and it takes equals amount of time to be good in a specialization (say machine learning for example). Even for a good ol' engineer to move from building web apps to building machine learning systems, the barriers are still non-trivial. Furthermore, consider that a career in software engineering is perhaps more akin to spending 20% of your time building somewhat sexy* new thing, and 80% of your time doing boring boiler plate work, trying to pull your hair out digging through other people's APIs and code, and wondering why the build and CI system is so broken. If that's what you want to do, then go for it.
* most likely it's just a boring CRUD app using somewhat unfashionable technology.
In particular, if you want to go for sink or swim, switch to a technical PM role in your dev platform (like the Dart, STL, app model, or cpp teams). You'll be forced to learn more about how developers work and what goes into a language. Can highly recommend it.