Ask HN: I will quit my job as a PM to join a coding bootcamp. Am I crazy?

155 points by tigertheory ↗ HN
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 ] thread
(comment deleted)
What is driving you to seek this change? What do you want to be doing 3 years from now?
Nope. But you should make sure you actually enjoy coding. I did the switch like you (from running a small startup to doing a bootcamp and becoming a developer).

Several 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-...

(comment deleted)
You're not crazy, but temper your job and income expectations. (though you may get hired because of your PM experience, to do PM) Most bootcampers when they come out are ready to be an intern and start learning. Your life will be much different than your used to, but if you're in it for the long term, that's not a problem.

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.

Bootcamps are for people who need employment quickly. Since you are employed, you can take evening and weekend programming classes to see if you like it before taking the plunge.
This is the best comment so far. Bootcamps make sense if you have spare time and spare money and want to ramp up very very quickly, but they don't provide anything you can't learn on your own. This is doubly so if you are already working in tech and interact with working programmers who can help sanity check what you're doing and help you along in your studies.

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.

What future role do you see yourself playing in the industry? Well paid geek, founder, investor, researcher ?
Yes, you're crazy. Keep your high paying job. Learn computer science on the side.

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.

This is what I was going to say as well. Don't jump into "boot camp", start taking night classes at your local community college (or if you have flexible hours) day classes. Even MOOC/online classes during the evenings will be a path to adding coding skills to your resume.
Finding problems and learning how to solve them with a tool you want to learn is a pretty powerful method (IMHO).
Quite possibly, but consult professional help if necessary.
what is a PM? you're the prime minister?
Nah, PM stands for Project Manager, the person who coordinates & manages a project to make sure it happens on time and on budget.
It's also used to mean product manager. OP should've spelled this out to get better answers.
Honestly, this is the first way I read it as well.
A PM is what companies used to call a business analyst. These days companies inflate titles so everybody has manager in their title.
Except that project manager makes way more sense than business analyst when you're managing projects.

Business analyst is a different role.

Project, Product or Programme Manager most likely.
I can certainly understand wanting to make this transition. One thing to bear in mind, though, is that corporate programming jobs can end up having a lot of focus on process and highly-structured modes of collaboration that make it a very different experience from coding on your own. As a tech PM, you're probably more aware of this than people coming from some other backgrounds, but still something to watch out for, especially if you're tempted because you enjoy hobby coding.
> e.g. block chain, deep learning, etc.

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.

>> e.g. block chain, deep learning, etc.

> 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 (?)

I don't think there's enough time to teach. My machine learning class at Berkeley only felt like we were getting our feet wet.
Looking some more, the closest I can find are some "Data Science" bootcamps (like Insight and DataIncubator). But they require PhDs.

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.

Keep your job and fund a company on the side hiring people to do the hands-on stuff your dreaming about. The software industry is full of challenges and tech so it's endless and extremely diverse. You could spend the rest of your life on deep learning or whatever discipline. Today your just another drone PM, if you want to make a difference build a company, don't be another drone techy dude.
By PM do you mean product or project manager? If you're a project manager can you move over to the product side? That way you'll be able to leverage your MBA by learning a new set of skills. These will include SQL and data analysis, whatever field your product serves, and I even knew a couple of product managers who would occasionally sling code, write copy or design mockups when the project deadline was slipping. I feel that coding is going to be a dead end career field in 10-20 years, because everyone will simply do it as part of their job. Better to work on those soft skills, rather than just a pure technical skill.
Yes, you are. The best opportunities are in cross-field expertise, so keep working as a PM, but learn coding and other software development disciplines in parallel. Don't underestimate the management contribution to the quality of the code and to the final result: through building the right process, through the deep understanding of development team needs, weaknesses and strengths you may influence the resulting product much more than one of the coders. Everyone can code or learn to code - it is much harder both to possess the coding skills and manage people at the same time.
No, not crazy, people change careers all the time. My suggestion would be to go over your reasons with someone like a counselor to determine if they are true for you or not. What I mean is, you said some things that are made up meanings. If you're cool with what you made up, then no worries, it's just something to look at, that you may be convincing yourself that "if I do this, then I'll finally feel fulfilled." (Not sure if this is true for you)

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

A coding bootcamp is fine, but it won't get you much closer to doing block chain or deep learning work.

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.

My uninformed opinion on bootcamps here is that they are probably a good way to learn about finishing a project (something which CS is poor at). Deep learning or blockchains are cool, but if you can't finish something then you aren't going to make something cool (even just cool to you), and without that it's hard to keep going with self-learning.
I don't think a PM should quit his/her job to learn how to finish a project. Your comment has me thinting OP should drill through an online course. That way s/he can relatively quickly add marketable skills and background to his/her resume while employed. It might not be as sexy and intense as a "boot camp", but it's probably way more sane and productive.
Companies have this ridiculous idea that you have to either be a PM or a developer but you can't be both. Virtually everybody in an organization except developers wants to reinforce the view that developers are just dumb coders who's only purpose is to implement the whims of everyone else in the company as fast as possible. Every PM thinks they would be successful if only they had more devs to boss around. Becoming a developer is not going to be like you think.

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.

"Companies"? The model you are describing is dying a speedy death IMHO. The only PMs left where I work are quite technical and do manage to join the dots between projects economics, office-politics, and engineering. Needing a PM is an indication that either something is very new, or is going very wrong. May I advise you to look for employment somewhere not going down the drain?
Learn everything you are excited about on the side. No need to take risks courses and general info is available everywhere, you are smart, you can learn everything on your own.
There's a self-paced in-depth program I can highly recommend that might allow you to do/explore this in a moderate way - that is, without quitting. I'd be happy to chat about it. My email is in my profile.
I'd think the answer would depend on which of the top 3 tech companies you work for: Apple, Samsung, or Foxconn.

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.

I personally think you are better off trying to learn this on your own. It seems like you have the enthusiasm. It sounds like you're also unhappy with where you work. You could try changing jobs to something where you have lots of free time (good/work life balance, no commute) and work on learning to code. Coding boot camps are very web development focused.
> 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.

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.

Yes very crazy. I have a anecdotal survey of all coders I know: most of whom all graduated from only median Tier-2 US & News Report Ranked Nat'l Universities (>15) and whom have on average, earn only median Fortune Magazine's Best Jobs annual ranked salaries as Application Developer, and only very few employed by Forbes' Most Admired Companies list or who are on the Mattermark's Top 100 Startup Index.

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).

> such as closing JIRA tickets

I'm not a big fan of JIRA myself, but even cool startups need to use an issue tracker?

(comment deleted)
No, cool startups don't have any code issues, so there's nothing to track.
>> # Elixir + Phoenix is the future -- Python/Ruby/Java are too mainstream for us

>> 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

Don't forget to git push --force to resolve conflicts!
We have a company taser for people who do this.

You have to self-tase one second for every commmit you blew away.

Top score is 4 seconds.

I'm not a fan of complicated git flows, but are there really people who force push to resolve conflicts? I mean professional developers who do this on real projects?
Nothing wrong with doing that on a feature branch after rebasing, as long as you are sure no-one else has pushed any changes to that branch in the meantime. Although personally i prefer --force-with-lease, which will warn you if that's happened.
If anybody pulled in the meantime and they don't know you are forced pushing they also might get in trouble because of your force push.

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 hesitate to call folks who do this "professional", but yes. I have also worked around people who blindly resolve all conflicts with their version and then comment out the failing tests.
Don't work => don't self-tase.

I am not convinced. Instead, you'd need a reward for every cleanly committed line of code.

Also next time you need to deploy you can just use --amend to avoid having to think of new commit messages
I do it when I push to staging on Heroku :)
As an elixir dev the "no test needed" hurt. As someone that had to deal with explaining why VCS is important it burns.

But elixir does not have main file so it is ok :p

I don't think this is entirely accurate. Yes, enterprise coding can be really boring and mundane, but just as often it can be interesting and challenging and involve new technologies. As an entry level programmer, sure, you'll do Jira tickets and HTML fixes, but once you get just a touch of seniority, depending on the organization, you can get some neat opportunities.

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'm going to disagree with the bootcamp grads don't do interesting work. My company employees a couple bootcamp grads including myself. All of them work on what are considered the most critical teams in our company. I work on search, which has some of the best engineers in our company. I will be working on elastic search, building our first angular 2 app, and I might even get a little exposure to machine learning / nlp.

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 was a lifelong hobbyist programmer that went to a (well-regarded) bootcamp for reasons that only really make sense to me. I do a lot of the mission-critical work for my team/company. I've been solo dev on big ETL projects that my company depended on -- they don't teach you that kind of stuff in bootcamps, but some do give you enough database experience to figure it out.
> Yes very crazy.

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.

If you're interested in working with cool tech like blockchain and AI, but are tired of startup culture, a good option might be one of the "Digital Innovation Lab" organizations that more traditional companies are putting together. I just started working for one, and it's pretty great - I have stability, sane hours, solid compensation, and a healthy culture, but I also get to work with a bunch of really smart people on cool technologies.
Where do you work?
Interesting, I am currently in the process of setting one up here in Singapore. Could you give me more information about staffing (FTE devs, PM's, Mentor's, etc). How long is the process from Ideation to Innovation Lab?
I joined the lab after it had been up and running for about 6 months, so I'm not sure what setting one up looks like.

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.

Yes and no. My question is, what do you want to achieve by going through a boot camp? Using the certification as a pivot for career change? Having an short period of time where you can focus and intensely study the subject? I think it's important to consider what specifically about the boot camp route is important to you, because there are a lot of other ways to be proficient in coding.

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.

>engineers are delighted when PMs show interest in code

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.