I think your general premise (that management is becoming less relevant) is true, but you're approaching the problem incorrectly.
If I had your goalset, I would cram hard on EdX, OpenCourseware, etc. You need a good first principles education starting with Algorithms, Data structures, etc. I'd also start to learn how to do SWE interviews, which are a whole other skill set.
One last note: even if you do all of the above, the best way to ensure you're working with cool technologies is to start your own company. I work for a major SF tech company, and our ML team is two orders of magnitude smaller than our monetization team. At the end of the day, companies exist to make money and a lot of the stuff you've highlighted is currently speculative/nascent. There's just not going to be many jobs until these technologies prove their financial value.
Good management is the number one competitive advantage an enterprise has.
Management essentially means running the corporate machine and directing the efforts of its tens or hundreds of thousands of employees. If poorly directed, effort is wasted.
As the world is seemingly centralizing into a handful of large corporations, good management is more important than ever because the power of organizations is so much larger.
I seriously struggle to keep the non-tech side of the house in order by myself. I can handle client interactions and emails and task tracking and mentoring new hires and performing my technical job. I'm even on a project supporting an install of our product that's 8 versions out of date, that was released in 2013. That's pulling in skills I haven't used in over two years, but I can still remember what commands worked on that release and what commands were introduced in later versions.
What I don't have time or mental capacity for is making sure we're within budget, both in terms of hours and in terms of dollars. I don't have capacity to sit on every advisory board meeting, of which there are six hours worth internally every week, and at least two hours per client per week (I have 10 clients). I don't have capacity to put my project on hold while I track down an updated billing code.
I thank god every day for project managers. Some people complain, but I love them. Sure, they take a bit of my time and they don't always understand what I do, but they save me even more time and I sure as hell don't always understand what they do.
As an aside, I think the most annoying thing in the world is when a PM thinks they're a technical resource and starts telling me how to do my job. "Hey can you log into Client X's system and run the command 'xyz' with the flags '-yVx' and send me the output?" Uh, no... I know what you're looking for and the better way to get it is directly from the database. Don't worry, I know the command. Stop using Stack Overflow and do your job.
A manager who has strong technical knowledge and experience ?
I have seen many managers who know bugger all about the technical stuff, and have zero interest in technical stuff anyway. They are absolutely not inspiring, and are poor leaders. For some reason I don't understand well, these type of managers stay.
1) The negative image of coding bootcamps on HN is worse than in industry, not the other way. There are plenty of coders who came from bootcamps now working in industry. I agree that you aren't as well regarded a CS major, but it is definitely better than self taught.
2) The things you listed he should do are pretty much the things you'll do at a coding bootcamp. If you can stay on a good course and keep yourself motivated, it is completely reasonable to think you can be in a similar position in the same time frame (with an extra 10-20k in the bank.) However, you should be very honest about those two qualifications. It's quite easy to get side tracked/not do as much work as you think you will.
3) You're right on about the new tech. The reason that we think it's cool is because it's the thing that everyone is talking about on HN. The reason there is so much traction with all of these topics is because there aren't a lot of applications for them and a lot of people are playing with them. I'd expect an entry level coding job to be writing REST APIs and front ends for CRUD apps. You might be pleasantly surprised, but I wouldn't quit your job expecting otherwise.
a) The thing that isn't frequently talked about wrt bootcamps is that you don't get a job after the bootcamp. I'd expect 30-60 days of applying and interviewing before you get the job, just FYI.
Going to a bootcamp shows you are just another good student, who can sit in a classroom for 10hours straight in a day, during 12 weeks, and get good marks.
When you are self-taught, you show that beyond your new technical skills, you have the self-discipline, and drive to learn and practice new skills from scratch, without someone holding your hand. This must be a skill that any employer would value highly. Employers would want their SW engineers to be autonomous, and have the self-discipline to initiate to keep learning, because with SW, you need to constantly learn if you want your skills to remain up to date. Teaching yourself SW is hard. If you manage to do that, the proof is there that you are passionate about what you're doing, because I don't believe it is possible to teach yourself SW without being passionate about it.
There are heaps of resources online nowadays to teach yourself SW engineering.
Don't get me wrong, I've met some brilliant and capable bootcampers, who I suspect would've done just as well or better outside of a bootcamp, but my point is that having a bootcamp portfolio isn't much of a signal.
You also seem to think attending a bootcamp automatically precludes a student from being able to provide themselves with continuing education.
There are different motivations for people entering a bootcamp and some are looking for that paycheck. But again, that does not necessarily make them a bad SW engineer. And if those people would like to keep their salary, they will learn soon enough that they will not get very far with stale knowledge.
It's really about how much money you have. If you've got significant savings like I did, it makes sense to pay as time becomes more valuable than money in your life plan.
It completely boggles my mind that someone can just go and do a "bootcamp" and then land a job two or three months later. Is there really that much demand for coders out there? Such a person could easily do more harm than good.
He was a disaster, they'd have been much better off with a bootcamp graduate.
And, I would add, experience as a PM is very valuable when starting your own company. Project management and coordination are the sorts of skills that many people starting companies do not have and do not realize they need.
Yes, you would probably find value in picking up coding skills. Foundational rather that practical as you're unlikely to deliver more value than someone who has dedicated 100% of their training and work experience to practical coding.
The new coding knowledge isn't going to be where you deliver value though. Most of the new value you create in yourself will be as "an experienced PM who also knows how to code", so start thinking about what kinds of opportunities might be a good fit for that future you. There will always be fewer people with your synergy of skills than there will be with experience in each individual skill domain you posses.
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.
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.
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.
Not because the opportunities you see aren't there; they are. Not because management isn't losing its lustre in tech companies; it is. But because coding is hard.
I have a great software education (top school, top program), I've had tremendous opportunities to learn from the best and build amazing things from scratch, and I've been coding professionally for 20 years next year. I'm only just now starting to really "get it".
Having a top-3 MBA (I assume you mean Wharton) puts you pretty advanced on the product/management track, one it will take a decade to catch up with as a developer. Embrace that, dive in, enjoy it.
Here's an alternative suggestion: you don't need to code to understand crypto/blockchains/AI/etc. Those are complicated and sparsely understood, and they are math. Knowing what you can do with them and how to apply them in products is much more rare than being able to implement the algorithms. Why not focus on the theory beyond the code?
Can you elaborate please?
Calculate the opportunity cost of doing this in dollars. That cost is REAL.
People seem to think opportunity cost is an abstract concept. It isn't. Your retirement and your personal situation will be less $Oppurtunity cost.
Other false assumptions I see in your thinking:
1. Underestimating the difference in competition in engineering versus PM
2. Large error in the number of years of low beginner status in programming
3. Your personality as a PM puts you at a disadvantage when trying to get technical buy in from other engineers
Investigate other paths:
1. Study on the side.
(If you can't do this for 6 months, you won't be able to sustain it full time either.)
2. After Work 1-on-1 face to face engineering coaching
Use the money you make now to have a full time tutor who sits right next to you (I.e. they only have 1 student and thats you and you sit side by side and code) after work. I think this is a much cheaper and much more effective way to learn that isn't available even at bootcamps. You keep your optionality but you also learn more/faster than at a bootcamp.
(Ping me - I'll do it for $150/hour. :)
You're crazy to do this. I've been (largely) a developer for years, and I struggle to get excited about client work now. It's amazing to be able to MVP something myself, or throw up a project over the weekend, but that's kind of it. Kids are younger and hungrier than me. Having experience is fantastic and certainly helps with day-rate, but I just don't have the time or the energy to keep on top of everything anymore. Now it's time for me to transition to other things.
In your position - keep the job. But invest time outside of that to learn to code. Build fun things. Experiment, learn, grow. Having an idea of what can be done, how it can be done and the time it takes will make you 10 times more valuable in your roll and moving forwards. You will be better positioned to talk to clients and talk to developers.
If or when the time comes that you want to run your own business you will be in a better position to recruit and to muck in yourself.
But for now, spend your spare time learning, and save as much money as you can to take a chance when and if you're ready.
That said, good luck with whatever you choose. Right or wrong, you can only learn from your choices :-)
If you can, take a sabbatical. If you can't and live in an ethical gray zone, go to a psychologist and get disability time off of work. Depression and some other mental maladies are treated as disabilities, at least in the state of CA.
Otherwise, find time outside of work. I assume you are able to teach yourself if you graduated from a top 3 school. Teach yourself to code. There's more than enough resources on the web that show how to go from 0 to capable engineer. Keep in touch with devs from work. Hang out in dev chat rooms/forums on IRC, discord, slack, or MOOC forums.
Coding bootcamps and online resources don't teach you truly how to code. The ultra basics they teach. Only actually coding, failing, refactoring, repeat teaches you how to code.
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.
As you learn more, you should keep in touch with those devs, and you can ask them for feedback on the projects you work on (clearly, the onus is on you to not abuse their time, but most people like to help someone who is hardworking, enthusiastic and respectful). Then, by the time you've developed your skills to the point you could take an entry level developer position, you will also have a bunch of developers in the company who know you, know how hard you've been working, and will often be willing to pass on knowledge of openings, and put in a good word for you in the hiring process. Also, don't ignore the possibility of joining a startup once you have sufficient technical skills, a growing startup is exactly the kind of place that would greatly benefit from someone who understands team and project management and can deliver good code. They will hire you for the technical skills, not the PM skills, but that doesn't take away their value. Email me if you'd like to discuss further, and best of luck!
If you want to become a much better PM and have the tools to start building apps on your own, then yes DO IT! Right now the economy is great, if in 3mo you are back on the job market saying "I'm an awesome PM and I did a coding bootcamp to increase my understanding of the products I manage so I can be an even better collaborator" you will just have increased your value significantly. Probably you could just go back to your old job with a promotion.
My 2c is that if you dont have any dev skills right now then work night and day in your own time to get it. Choose a language, any one will do because you need to learn the fundamentals soundly. Do not be swayed by the tech-du-jour or you will never finish anything nor learn anything in depth. tschwimmer advice is sound. However know your learning style first - i got more out of 3 months messing with C on Arduino then i ever got from a textbook because i like learning stuff with sleeves rolled up and the coffee strong.
And lastly, follow your heart. npostolovski did it. It is far more important to enjoy what you do than much anything else (practical considerations of food and housing aside). Happy and comfortable is a whole lot better than miserable and wealthy.
Disclaimer: Im a PM, have an MBA, and dabble in C# at work, Python/C on home projects. Experience: Im a much better software PM because i can also code/hack some of my own ideas. Have been co-founder of a corporate restructuring company and my ability to code meant i could get the data and calculations needs to make turnaround decisions while others just drowned in their spreadsheets. Im now 53 and learning new things - currently IPC and mesh networks(home) and cost accounting(work).
I decided to quit my last job and study full time to become a developer. Not through a bootcamp, but through cheap or free resources online. I chose freecodecamp.com to go for now.
I did an Ask HN too and I did not receive much support either from the HN crowd. I don't know if people here think being a developer is not a good career path, or they are tired of wannabes and impostors, or they consider a developer career is just for a few selected ones; but I was expecting much more support here for people wanting to learn to code.
My answer to your question: I think you should go for it. Just consider very carefully if a bootcamp is the best way. But if you have the cash reserve to use, I think might be a good first step. After that, keep searching for knowledge in other places. And follow with laser focus the exact field that you consider interesting.
If in one year you regret this decision, it is not too late to reverse the career change and go back with your great resume as a PM, with more added value by your experience learning to code. Go for it, it is not a path of no return and it will be a valuable experience either way.
I think there's a reason for that, and you touched on some of them. There's undoubtedly an ageism to the tech industry, and being an older junior developer is likely to be a huge uphill climb.
There's also skepticism around the coding bootcamp industry for the same reason that there's skepticism around University of Phoenix: The certification isn't really useful or impressive, and the kind of person who benefits highly from a program like that would likely learn just as much through self-study at a severely reduced cost (or free).
Compounding that, there's a glut right now of alternative software development education. It's hard to imagine a future where being a software developer isn't significantly less prestigious in the future, except for software development in highly specialized areas (e.g. machine learning).
Not that prestige is so important, but the reasons for the loss of that prestige will likely cause salaries to plummet significantly. It's entirely possible (and some would say likely) that most web development will become analogous to traditional trade professions like plumbers in the future, with:
* Significantly less initial investment: There's no standard or certification for being a web developer)
* Significantly larger pool of competition: Your web developer doesn't need to physically be located near you, unlike your plumber.
If you're fine with all of these things, then that's great! Be a software developer. Just be aware that it's likely to experience significant changes in the coming decades, not many of which are likely to be beneficial. You might very well do better for yourself and your family to actually just become a plumber instead.
A friend of mine just did a bootcamp -- from a stalled career as a lab technician in which she was making something around $60k/year (in the Bay Area) -- and sure enough, three months later she got a job at $110k coding the consumer website for a bank.
Now. Is that the quintessential job that everyone on HN longs for? CLEARLY NOT. But is it pretty impressive to jump your salary up two really solid tiers in three months and at least be in a place where you might see another $50k/year over the next 5-10 years? From where she was? Hell yes.
Some people who are amazing autodidacts don't need a bootcamp for the skills, and lots of people who aren't amazing autodidacts could get the skills in other ways (but slower, and almost certainly cheaper). The credentialism is going to be a problem, though -- Google isn't going to hire a bootcamp grad, but they also almost certainly won't hire an autodidact. A big boring enterprisey place apparently will hire a bootcamp grad, and almost certainly wouldn't hire an autodidact. Startups, well, who knows, but they're a crap-shoot.
Sure, and similarly there isn't anything inherently wrong with for-profit universities: You can certainly find people who excelled in an environment like DeVry and don't regret their decision to attend.
Over time one can expect that the "cream will rise to the top" and good bootcamps will have a certain reputation associated with them. Similar to for-profit universities. Still, I hope it goes without saying that many of the same concerns about for-profit universities also apply to coding bootcamps.
> I do think that the credential is important.
Why? What does the credential prove in this case?
> sure enough, three months later she got a job at $110k coding the consumer website for a bank.
That's great! I'm happy for her. Still, I hope that sentence gives you (and her) some pause for concern.
If three months is enough time to train someone for a $110k job, I would suggest that job is unlikely to remain paying $110k in the foreseeable future. It's hard to think of other professions that pay so well for so little investment. The supply can (and will) increase precipitously to match the demand, and salaries will drop precipitously.
For a recent example, see the recent glut of law students and freshly-minted lawyers making a pittance. There are quite a few parallels between that scenario and the current one facing software developers, except that law school is even more of an investment than coding bootcamps.
> at least be in a place where you might see another $50k/year over the next 5-10 years
That's my point though: I don't think that's likely. Maybe over 5, but it seems unlikely that 10 years from now she'll be making $160k. I'm suggesting that those kinds of salaries will be reserved for people working in specialized fields, not people doing basic web development.
For a more realistic future salary, I'd say look at developer salaries in places like Canada, or much of western Europe (where $60k/year a year is probably much more realistic than $110k).
> Google isn't going to hire a bootcamp grad, but they also almost certainly won't hire an autodidact
Google absolutely hires autodidacts. I know a few of them. Clichés about "non-Stanford students need not apply" aside, Google just hires smart people. Smart people don't always have degrees or certificates.
Most fail the training, it's a necessary but not sufficient condition.
* Maybe pent up demand will keep salaries high for quite a few years.
* Maybe salaries will fall off the cliff for people who graduate a bootcamp in a few years (3-5), but by that time current or near-future grads will have gotten far enough away from the glut of very junior people to have some salary stability.
* Or maybe the wages of all software devs (or a large majority of them) will fall off a cliff and that will lower cost of living in the Bay Area and it won't be such a big deal all told.
As to Google: It's a big company, it's hired a lot of people. But I guarantee you that all else being equal, a person who got a traditional university CS education has several big legs up over that person's identical twin who was self-taught or who did a bootcamp, for a junior dev position, without extensive industry experience in any of their cases.
For more senior devs I usually talk about code, design/architecture and get them to talk me through some issues they recently faced and how they dealt with them. All high level stuff. If they can explain technical stuff clearly and concisely I'll skip the coding test and put them straight into probation period. Works well for so far. All creases are easily ironed out in code reviews and are mostly due to style guidelines.
Yes, the pool of available software developers will grow, but I believe the applications of software development will grow even more. Even if it takes to invent my own application of it and sell it.
I still have the sincere impression that software developers in this early ages feel they are rather special and regret that more "common" people are trying to become one. Like a hipster syndrome of a kind.
I think if you said "my current job is packing bags in the supermarket, I want to learn to program, should I go for it?" there would be plenty of support. The issue here is that OP will be giving up a better job than that of entry-level programmer, which is what makes the proposed career switch irrational. I mean sure, it's your life, at the end of the day you have to do as you think best, but if you already have a good job and you ask for advice, the advice will be to keep it.
Look, teaching yourself programming is not only possible, it's required -- forever. You will never have a job as a programmer where you're not required to learn new things, without anyone else's help, sometimes without even any documentation, and often on tight deadlines.
If you refuse to even try to learn extremely well-documented technologies like HTML, JS, and Ruby on your own without paying someone to spoonfeed it to you, what are the odds you'll survive when your boss tells you you need to figure out how to integrate with some obscure closed-source third-party library by Friday? Or even when working on mainstream technologies, will you do to get unblocked in the (very common) situation where you're the first person in the world to encounter a particular bug, and you can't ask your team about it because they don't know?
It's not that I'm opposed to people learning to code. It's that I think many of those who need a bootcamp wouldn't have the personality to be successful.
Of course there are some successful bootcamp graduates; this isn't an absolute thing. But why not at least try first to learn the way the rest of us did, by tinkering with stuff because you enjoy it?
You can see on this thread and I experienced it also (and I never considered a bootcamp).
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.
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.
I quit my job went into a bootcamp and have been a software developer for a year plus. I've been pretty happy with the decision. My reasons were completely different though and were more about understanding what I was good at and passionate about.
I think I can help. Ask me anything.
FYI I agree with many of the commenters that your reasons for doing a bootcamp seem a bit misguided. I did one because I'm genuinely excited by building things. I feel like I could be building boring crud apps for the next 5 years and I'd still be happy. If you don't feel that I would reconsider.
I've made the transition from developer to PM over the last 7 years and it's enabled me to work on progressively larger projects and to set direction.
Being a PM is about making sure the right thing is built at the right time.
Admittedly my technical skills have gone stale and to do any of the really interesting technical things would require 6-12 months of intensive learning if I were to do it on my own. This is with undergrad degrees in Comp Sci and Physics too.
So I decided to hack the problem and join a startup in SF thats doing novel hard tech !(business process automation, ecommerce, apps, small marketplaces etc). Here in Sydney they're few and far between.
I'm pretty excited to be working with them, its an opportunity to work and learn with a smart tight team.
So advice to you would be to is find a smaller business unit in your current company where you are closer to the coal face or go join a 100 person company working on a hard problem. Usually they'll have a team of 5 PM's supporting a tech team of 30.
I would say, a PM has to understand the user needs, and drive the product. The former has got two parts 1. Understanding the user needs which the user can articulate 2. Understanding the user needs which the users cannot articulate.
I have had the opportunity to work with some of the best coders. Though I greatly admired their intellectual capability, I was not a big fan of their ability to think from customer's shoes. I have figured out that "Common sense is not so common". Now, having an MBA does not guarantee common sense, but if you think that, you can communicate effectively with your users, understand their needs, empathise with them, and can comfortably put yourself in their shoes, your are definitely adding value as a PM on Point No 1
Understanding the user needs which the users cannot articulate - This is where innovation begins. Now, if you are a PM without the ability to code, you may be at a slight disadvantage here. The ability to code, or perhaps the understanding of the fundamentals, would help you to structure your thoughts. It gives you a clear picture on what is possible and what is not possible at the present, from where, you can start to innovate.
To me, Quitting the job appears certainly crazy.
But might be a good life move!?
You will learn none of these things at a coding bootcamp. If you are really interested in going deeper, check out Georgia Tech OMSCS - you can do it while you are holding your current job (employer may even pay for it for you if yr lucky) and more importantly the courses are relevant to what you state actually interests you about future of tech. http://www.omscs.gatech.edu/current-courses
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.
I disagree, solid managers and leaders will always be important. Perhaps you are focusing on the negative, rote aspects of yr job too much?
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 thought... I have worked at monoliths, a mid-sized corp, a hatchery, and my own. At a monolith, your job is very narrow. I was bored out of my mind and left. At a smaller company, the role of a PM is much more interesting.
I was a PM but I had a coder's heart. I took the route you are thinking about. I would never go back to being a PM.
Two words: software architect
They either come very natural to you, hence why you think they're easy, or you're not good at your job and oblivious about it or you have a very junior position and someone else makes the difficult decissions.
Either way, I would love to be a PM with an interesting product, not to mention being in a top 3 tech company. The money must be really good and the feeling of fully conceiving and creating a product has no equal. Coding it is fine and feels good too, but steering the ship is where it's at.
Even if you go back to PM, the ability to code will help you communicate with engineers and identify the right solution for a given problem, enabling you to transcend the project management aspects of PM.
Also, many executives struggle with strategies that entail deep learning or blockchain, because they simply don't understand them. To position for a future where those technologies are critically important, it's a good idea to invest time today to learn how they really work.
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-...
Because they are trying to compress a lot into a short period of time, and because they are trying to keep it interesting and give students early wins, they seem to not spend nearly enough time on the basics, and jump straight in to using frameworks that do everything for you, the end result being that a bootcamp grad can quickly whip up an ok looking app that has basically no functionality but as soon as you ask them to do something complicated, they get stuck. Sure, that's not true of all grads, but I'd argue that the ones who come out of a bootcamp with serious skills are the passionate ones who would've done just as well or better on their own, so at best they wasted a bunch of money.
You are much better off going the self taught route to start off, maybe take community college classes on the side. If dabbling like that doesn't inspire you and give you the fuel you need to learn what you need to know on your own then software engineering may not be the ideal career for you anyway, what you know is a small part of the job, what you can figure out and learn are also huge factors.
Some of the problems I deal with in programming can take months of thinking to solve and any course that says yo can become a professional programmer in three months is a joke. What happens when you stumble a problem that doesn't have a ready made answer for you or you encounter a bug take days to discover.
If you want to become a professional programmer, just start coding. You don't need certificates to tell you who you are. Programmer is an occupation based mostly on meritocracy, It's a well known understanding in the industry that the best programmers are self taught.
Start by learning some text books and doing side projects. Try and get a job from there. It will take you 4-5 years of hard work to get to the level you mentioned. And note. There are many bad programmers out there that stop learning after 6 months and just accumulate time. Don't fall into that trap. Learning is hard but the personal reward is great.
Boot camps are like dipping your toe in the water. Most people are not qualified after only a few months of learning. It might take a year or longer to become skilled enough to get hired . A small number of very talented and lucky folks can get there in 6 months with no prior experience.
Before quitting, it seems important to validate the assumption that you will actually like programming and have some success in it. Try building a few toy/example applications on the nights and weekend for a month or two.
That being said, after much consideration, if you want to do it and feel strongly it is the right path for you, go for it. I personally love writing software. It feels like magic sometimes -- you type some words into a file, and very cool things happen :)
Definitely go for it. Especially, please have a look at my previous comment in the thread entitled "Sorry, developer bootcamps: I was wrong" :
https://news.ycombinator.com/item?id=11445582
To resume: to my knowledge, the best training to start your journey as an aspiring Software Developer is the one suggested by Founders & Coders :
http://www.foundersandcoders.com/apply/
(Note: Codewars is just so awesome... https://www.codewars.com)
By the way, if you can get into it, I would strongly advise you to apply to FullStack Academy, they seem to have the best teaching around there (at least their students have very high rankings on Codewars) :
http://www.fullstackacademy.com
Good luck :)
Très cordialement / Best Regards,
Then you will think "Fuck if I were a PM, I would be a VP at this point, and my skills would be more sought after as I got older, not the opposite for a coder."
Stick with being a PM. If you like technology read up on it or program on the side.
If you're viewing the decision purely in terms of $$$ (as many other commenters here seem to be doing), it's true that in 10 years you will have earned less money on this path than you would have earned while remaining a PM.
But will you be happier day-to-day? I certainly am. Both careers are well-paid, so why would you pass up a net gain in happiness to earn 15% - 20% more over 10 years? Your happiness is unlikely to change materially because of the extra money, but it could change materially if you start to love your job.
I think a lot of the people giving advice here are software developers who've forgotten what it's like to be unable to build something, with their own hands, that they want to exist in the world. That's such a powerful feeling, especially if you want to start a startup one day.
I did a bootcamp at the beginning of 2013. At that time there were no bootcamps in Australia, so I moved to Chicago for 3 months to do the Starter League (now part of Fullstack Academy). Being in a different city meant I could focus all my energy on the bootcamp. I think this is main advantage of a bootcamp: forced focus for a long period of time, so you learn much faster than you would if distracted by your full-time job.
When I finished the bootcamp, I probably could have been hired as a Junior sometime after an extra month or so of filling gaps on my own, leaning things like TDD and various computer science concepts (algorithms, data structures etc.) My journey personally took longer because I got distracted by travel and other stuff.
As some of the other commenters pointed out, you're probably not going to be able to work on blockchain and machine learning on day #1. You won't have those skills coming out of a bootcamp. You'll probably need to get a job doing Rails or something - don't expect the big 4 or anything like that - and learn that stuff on the side. I would expect you will spend 1 - 2 years doing general software development before you can start working on cutting-edge tech.
But keep in mind that the organisations that do cutting-edge tech are going to be strongly biased toward people with a CompSci degree. Unless you're willing to do a degree, you'll need to learn this stuff really thoroughly on your own and then build some kind of project to demonstrate that you know it. For example, a cool machine learning project. Your bootcamp alone isn't going to get you into these kinds of companies.
You're not going to be able to do a bootcamp and then stop learning. The learning is never going to stop for you. But I think what you're planning to do is doable in a few years. In a few years I went from writing requirements as a PM to writing software to help scientists count mosquito eggs in a lab using image processing. Guess which one was more rewarding?
Feel free to ask me any more specific questions.
According to Glassdoor, Product Manager at Google is something like 200K/year (an MBA should be making more), Facebook is similar, and Apple a little less.
A bootcamp graduate shouldn't be making more than 100K/year from what I know of the U.S. (might be wrong).
Maybe his credentials make him hired at a higher salary, but nowhere near his former one.
Working as a web developer won't get you extra karma points. If you care so much about social appearance and are the kind who enjoy comparing salary income at mundane dinners out, stick to the job you don't enjoy.
If you like programming, you like building things, you like scratching your mind over complex problems, etc... then follow your heart and train yourself for your next career move. Sticking to some kind of social implicit rules isn't necessarily the way to go. Time may prove you right!
I know heaps of people who totally switched career for various reasons : went from a director position to a manager position, went from a PM position to working as a farmer, transitioned to web dev etc... and didn't regret their decision.
Anyway, one good way to do this may be to:
1. Take a hiatus. You may either tell your employer that you want to learn coding, or you may decide not to. Either way it's fine. Even if you tell your employer, if they are really top 3 tech company, they will understand and even encourage it. You can spin it as "I want to be a better PM and want to understand coding."
2. Learn coding
3. While you're learning, you may feel the urge to really jump in and become a professional programmer. Then be so.
4. If no spark comes during your time at those bootcamps, come back to work and continue. But even in this case, the world will be a completely different place for you than now.
Don't worry about people telling you that's crazy. Crazy is good.
But yes, by all means, if your goal is to learn to write software yourself, go ahead and get that extra education.
Coding bootcamps produce people who are conversant in the hot technology of the week, but if they were weak on fundamentals going in they're still probably going to be weak on fundamentals coming out. If you want to be a leader in the field, and not in the rank and file, you need strong fundamentals.
Maybe do the bootcamp to get started, but keep your job and the opportunity it gives you to meet other great developers and learn from them.
My recommendation is: 1. learn the basics however you prefer, 2. study open source code, 3. build something medium-size that you can use, either home or work. If you're very good & lucky this may be your next gig. If not, you'll be a PM with coding skills, which usually is a pleasure to work with from a dev perspective.
Why not contribute by launching a startup as CEO? If a Harvard MBA with deep pockets and PM experience reached out about her startup idea, that is a beer or coffee I would take seriously. In other words it sounds like you have the background to attract a talented programmer cofounder.
In my experience it hasn't mattered that much where knowledge has been "downloaded" from (college, bootcamp, self-teaching, etc). What has mattered is maintaining this "downloaded" knowledge and having it always updated to keep up with current times. Also, having actual projects to show to employers has helped me tremendously (e.g. open source contributions, client projects, personal projects, etc).
I'm self-taught and work at a BIG-BRAND company now as a Front End Engineer and make a six figure salary in the SF Bay Area; no college degree whatsoever, just a high school diploma. My resume says "Education: self-taught" and I'm happy to explain what "self-taught" has meant for me in the past six years to any employer. I've been able to work with people from all kinds of backgrounds: devs from bootcamps, self-taught engineers, devs with degrees unrelated to CS, devs with BS and MS degrees in CS and other subjects, and from many more backgrounds.
I'm contacted by many other BIG-BRANDs and small companies all the time to interview with them, and before I even accept to interview, I make it clear that I don't have a CS background, and that I'm unwilling to waste each other's time white-boarding algorithms - usually they're fine with this as they can clearly see my experience and instead they focus on the value that I'm able to provide. Many times I come across companies that ass-u-me I'm incapable because I chose a different path than them, but I've learnt to ignore the ignorant, and instead I focus on improving my skills and bettering myself as a programmer and a human being.
Any path you choose will lead you to a similar result. That's the beauty and uniqueness of our industry. As a final note, don't bother with comparing your salary with other people's salaries when/if you make the switch, as it won't matter at all if your income will allow you to live a really good life.
This is a world where you really need to aim to be the best in what you are doing, though. It's so competitive and there is no reason to expect that to let up. If you aren't doing that you can get stuck or hit a career deadend when the market shifts and those surface-level bootcamp skills become irrelevant.
So in my own space I am focused on a mixed stack of design, coding and leadership skills that is more in line with founders. The ability to pitch, to write up planning documents, to prototype and hold a vision, to study the marketplace and identify opportunities, to hone the vision through philosophy, as well as PM-type managerial duties. Those things are robust to changes in the technical landscape and they build on my own background.
Recently I was hiring on a tight budget. I've interviewed a dozen people from various coding boot camps, self taught web developers, etc. None of them could solve a Fizzbuzz level problem on a whiteboard.
(One thing I've learned after 15 years in industry, 8 jobs, 2 continents - a person who can't do fizzbuzz-type problem is not worth having onboard even for free).
It seems to me that even with best training in the world and a ton of prior IT experience it always takes people at least 2-3 years to start thinking in code in a way where you don't waste everyone's time. Learning to code is not about a bunch of syntax rules. It's about retraining your brain to use different mental models, developing intuition about where a bug might be, finding your way around a large and hostile codebase, anticipating how your today's decision will interact with all the features you'll implement over next 6 months, and so on.
Basic rules of programming are simple, but so are the rules of golf or snooker, or making bespoke suits, or wine tasting.
If you are prepared to spend next 3 years aimlessly poking around the debugger struggling to figure out the simplest thing only to realize at 11pm you were looking in a wrong place - go for it. It's frustrating but also rewarding.
If you think in 6 months you'll be able to build the next facebook with AI - only thing you'll learn in that time is how much there's still to learn.
Is this something where you could first try some of the online courses (Udacity, EdX, Khan Academy, etc) to see if you're actually interested and also able enough to do the job well?
Also, while I worked as a Software Engineer, I was not really doing much in the actual job and felt I was stagnating and falling behind. Most of the advancement in ability came during my free time where I'd try to learn new things, dive into new interests, create software I actually wanted, etc.
Eventually, work hours resulted in less and less time to do things on my own, and the crap at work got more and more irrelevant, tedious, and stupid. Also, management was all about trying to rid you of any competitive edge or anything else that makes you worth anything (or that brings you happiness), so in addition to all that was in place, it was known/realized they were going around each day looking for more ways to ensure every path would lead to a dead end.
It wasn't long before I wanted to quit and before I realized the only way to make it work would be to create my own company (or maybe become a freelancer/consultant).
But hey, we all get a little crazy when it comes to the things we love. Just be aware that a bootcamp is just the first of a great many steps before you can contribute to something you'd consider the 'future' and not 'move the button 10 pixels to the right'.
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.
Unless you feel your PM role is a complete dead end, build on your experience instead of trading it away.
Edit, adding: A PM who understands software development, or a developer who understands project management, is a good set of skills to have.
That said, make sure you actually want to write code. Boot camps prepare you to make simplistic websites and mobile apps not the interesting stuff you mention. You'll have years of learning to get into those in a meaningful way.
I've worked in startups and the game industry as a programmer, designer, producer (probably more like your version of PM), and kind of as a PM (which, in gaming, is probably like some percentage of your job now, but not all of it).
It's definitely true that having worked as a designer and programmer was INCREDIBLY helpful in making me a better producer. The ability to communicate with people you manage or need to make decisions for at a passable level of their domain knowledge will be very fruitful and will help you command their respect. You'll make better decisions too, of course.
Feel free to email me if you want to know more. (That goes for anyone here, I'm always happy to give advice.)
And truthfully, most companies today are really bad at management, particularly related to technology.
Learning to code is a great idea but I would think of it as supplementary to your management work.
You're right about all these amazing technologies that are being developed, but truthfully, the stuff you learn in a bootcamp is not going to put you in a position to do much in those fields. It might be a small step in that direction, but you would need to go way beyond it. Advancements are coming from folks with deep knowledge of math, algorithms, systems engineering, etc.
The skills you pick up learning to code will be tremendous for managing others to build what you need.
Coding is hard to do well and takes years to get really good at it, and you will likely need to start at the bottom of the food chain to get the right coaching and support. I'd recommending learning enough code to be dangerous but get experts to help you do the hard stuff.
That said if this choice is about happiness, then go with your heart. Money shouldn't factor into that decision, it will come over time.
The chances that you happen to turn out very good at programming and that you land a job doing exciting stuff that you love in a cutting-edge company are virtually zero.
You may have an idealized picture of what developers do. You can try and learn some programming in your own time (yourself, with tutor etc) and see how it goes before taking the plunge.
Having some kind of hard technical skill very important. It help you tackle harder problems that arises in the future. For example let say AI becomes increasingly important. Since you know some code, you ability to lead in this a new technical field will be better than someone with no technical ability.
FYI i'm a coder and founder of a software company. Most of my time is spend on PM now.
People aren't saying he's crazy to learn coding (though he's going to need some solid actual CS for deep learning / blockchain stuff I'd imagine); they're saying he's crazy to ditch his job and switch to a boot camp.
I took a >50% pay cut and switched to a field I had no experience in. It was absolutely crazy and high risk; it was a lifestyle move though rather than a career move as such.
Also, does he want to be "a better PM", or does he [think he] want[s] to be a software engineer (or similar), it seems like the latter to me?
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.
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.
You're not crazy to make that career switch, but you are crazy to attempt to do so in that manner.
Start reading books on programming and teaching yourself instead, and start working through the actual exercises. I think Python is a good language to start with.
Take the coding bootcamp. Do one of the longer ones, like the 6 month one if you can. Or do one of the online ones, and be disciplined about it, such as teamtreehouse.
And then go back to being a PM, but use your knowledge of the difficulty of coding to leverage many developers to work towards an important goal.
Or, go back and become an expendable framework of the week coder and then find yourself needing to relearn those skills every 5 years to do the same rote job.
Coding is great fun, until it becomes a routine. Then it's just like anything else.
Like several other commenters have said, a better approach would be to learn coding on your own time. (Choose a language—any language will do, learn the basic from a introductory book and codecademy.com, then work on small weekend projects)
Most technical careers are competitive and short.
And how are those not tangible?
Find someone to complement you, then try changing the world. one small project at a time.
Instead of something like a coding bootcamp, I've taken courses at the local university. Almost all universities (including Berkeley) allow non-enrolled students to enroll in 1 or 2 courses.
Not crazy if you hate PM'ing, or you are not good at it, or are not motivated by climbing corporate ladders.
Keep the job, join some open source projects, solve some issues and enjoy the process if you can.
You can learn how to solve digital problems by coding while you work full-time somewhere else.
Good luck in any cases
If you really work in top 3 tech firm, your colleagues are Stanford/Berkeley/MIT/CMU grads, who ate rice and ketchup writing operating systems and compilers. This will be the level you have to get to to contribute to any technical project in a meaningful way. But basically: when you were doing business case studies and traveling around the world to meet world leaders and learn from the best CEOs how they handled corporate crisis, they kept hacking algorithms in a black window with grey letters. I know--I did that too.
I have 15+ years of UNIX experience, 10+ years of programming experience and 5 years of real-world software engineering experience. I'm thinking how to get your job all day long :-) This requires reading tons of books: http://www.koszek.com/reading/ which I do and I sacrifice time with my gf because of that. If you look at this list it's business, management, investments, people stuff. You'll have to do the same, but read about software and hack code in front of the computer, etc.
Most of HN experienced crowd are smart technical people with worse credentials, who are attempting to move from coding job to architecture/design/management job, which you now have. You are our target :) You can see it in many threads. It'd be like moving from a coffee shop manager to a waiter. Ask some senior buddies from a random technical team whether they'd like your job. It's good to see people appreciating each other professions, and we appreciate that too, but don't do this job switch yet or we will crucify you :)
My advice is this: take a break from work (just because you can -- you have a shitload of money anyway, or maybe just "enough" due to loans; go on leave, but for god's sake, don't quit your job), join the bootcamp if you really like, and don't tell anyone you did it. You see from this thread bootcamp, unlike your MBA, don't have established value in the industry yet. It won't harm you, for sure, but you won't be a software engineer. Bootcamp sounds good for you--you're a smart person and wants to learn more, since I think you haven't hacked much code before.
Better idea is what other guys say: just get yourself all online programs there are. All of them. They are $30/month at most, and Udacity is $200. Get them all for a month. You'll spend maybe $200 + 5*$30 = $350, but maybe $0, since first 2-4 weeks are free. You'll pick one that you like, because it'll fit your learning style. Stick to it and just do exercises. On top of that get books. Books are dirt cheap compared to value they bring to your portfolio. Whichever books you need; all of them. I think you'll have to end up doing bs I do for business/management books: google "top 10 programming books" and get them. Even if you don't read it, get it. It'll be maybe $350, since you may end up getting 10 books. So it's $350-$700 investment at most -- you'll get a grasp on what's going on. Then maybe $30/mo for 6 months to teach you one thing well and 2 in a sloppy way you'll kinda understand. And repeat it maybe 2 times. Basically: watch classes, do exercises and immediately after that write your toy programs on the side or (better) real products.
So you'll spend at most $1k to learn something you want. It's also spending $1k to save your $150k investment you've made by doing MBA in top 3 school. It's 0.7% cost of what you've spent on school, and still much, much cheaper than a bootcamp.
If you're a good MBA you're a cheap, stingy bastard that can get people to pay for your stuff. And top 3 high-tech companies have educational grants. Some up to $9/yr. They pay you for your education. So have the company pay for this bootcamp, if you come up with good enough reason, it'll be all free.
Now:
If you absolutely truly love hacking code and are obsessed with it and you think that yes -- this is your 2nd calling and you basically don't see yourself talking to people anymore - congratulations. You are eligible for leaving your job, retraining yourself and entering coding workforce. Trade your suit for dirty sweater and you're all set to apply for a junior dev role.
But I think it won't happen.
What will happen thanks to my advise instead is this: you'll make yourself be in like 0.1% top category of MBA people who truly understand what software is all about AND have a PM job. People who you work with will see that, so you'll be getting good reviews etc. You'll come back to this thread, see how wrong about PMing you were, and you'll apologise. You'll then keep studying and getting better at being a PM and being technical manager. You'll learn how to manage technical people, how to partition tasks, build features, build products and build tech companies. And no, it's not very easy and it's not fading away. I see you posted some stuff about machine learning in the past. If that's your field of interest: go and get TensorFlow original publication from Google. It's a paper where you see an abstract is shorter than a list of authors. Do you think these guys would have built Tensorflow without any PM of some sort?
Anyway, story goes: then you will quit your top 3 high-tech firm, and start a high-tech startup, get $20M in funding. And then you'll come back here, DM me personally and offer me 1% in your new enterprise for having a profound impact on your life and you'll offer me a PM role in your new startup. I'll gladly accept it for this 1+ hr free of charge advising.
A /lot/ of companies insist on "culture fit", which unfortunately does include a lot of sexism, ageism and racism. There's been plenty of good discussions about this on HN, and the fact that you've been lucky enough to avoid the problem, doesn't necessarily mean that the problem doesn't exist - or that people who are discriminated against are just stuck using ten year old stacks.
I also can cheat the system a bit - even though I'm 39 I look super young and wear the typical tshirt and hoodie you'd associate with someone much younger. (I look in the mirror and see a 23 year old, so I think that shapes my personality)
Additionally, I'm in Houston, where many developers are in healthcare or energy, and they do tend to use older stacks (usually .NET or ColdFusion)
That said, I think it's just a series of data points, and what you think a career should look like.
The two points I think are worth considering are:
1. Coding bootcamp vs postgrad qualification in CS or similar. I'm not in the coding-bootcamps-are-the-devil orthodoxy. In fact, I've seen a lot of great juniors come from bootcamps, but you do have to recognise their limitations. A bootcamp will get you to the point that a self-taught highschool code wizard will be at just before they hit university and realise that they don't know anything. Employable, sure, but lacking in fundamentals. You don't have to learn CS from a university, but one way or another until you learn it there will be a ceiling on how far you can progress as a developer.
2. Part-time vs full-time transition. One thing I will agree with is that you are going to be a way worse software developer than you are a PM, just by sheer weight of hours put in. For that reason if you're looking to make a switch I would do that wholeheartedly rather than learning on the side or moonlighting. Otherwise you'll be pulled in two different directions, and the one that you are better at, have more experience with, and can earn more money from will probably win.
If you genuinely want to be a developer to build stuff, I would do the coding bootcamp, get any job as a developer you can find, then teach yourself CS as quickly as you can while on the job. The CS will mean more and be easier to understand because you already have the practical skills and you'll be able to call yourself a developer sooner. Just be aware that the stuff you build straight out of a bootcamp will not be deep learning blockchain automation algorithms for SpaceX, it'll be web apps with questionable business models.
Another option is to just bite the bullet and get a real CS education up front. This will take longer to get you to a point where you're actually building things, and keep in mind that CS doesn't give you practical skills, so you'll probably still need to start with entry-level dev work, but your trajectory to doing interesting stuff will be steeper from there.
Ultimately it's down to your resources and your priorities. If the drive is to just make stuff then go with the bootcamp, it'll get you there sooner. If you mostly like the cutting-edge ideas and high-level work (and you can afford it) go with CS first. Deep learning isn't bootcamp material.
And keep in mind that either way you're 5-10 years out from being good enough at this stuff to really live up to the picture of it you have in your head, so make sure what you're doing in the mean time is going to make you happy.
https://www.lynda.com/Business-Skills-tutorials/Leadership-F...
Pay particular attention to the segments on emotional intelligence, motivation, engagement/disengagement(!), and professional development. It'll not only help you understand what is affecting your motivation and disengagement, but you may also realize your greatest strength is that you are motivated to solve these problems not just for yourself but others in your organization. Understanding the way things should be could just cause you to double down as a PM and master the challenges of the role while further developing your skills to advance your career.
Good leadership focuses on the health (and happiness) and growth of the individual as much as the organization. Maybe you are just in a poorly run organization or one that has poor leaders. Discontent is usually a pretty good indicator this is the case, because even if an individual is the problem, a good leader has the awareness to recognize this and have a good relationship with their staff that enables them to make the staff member aware of their strengths and weaknesses and the source of their discontent so it can addressed be remedied.
It sounds to me like you want to more authority and control, or at least more challenges and your organization's leadership is not addressing that. Without that your growth and personal development is limited. Being a coordinator is little more being an admin that tracks status and doesn't require much tactical or strategic decision making. Your manager should understand this and being stretching your abilities in every area little by little until they trust you to make those decisions. They should always be preparing you for the next level up. Maybe you aren't aware of your weaknesses and they are not identifying them and working on them with you. Maybe your desire to quit and become an individual contributor is just an Escape Coping mechanism for dealing with stress instead of a Control Coping mechanism which is positive and proactive. Or maybe they just have poor leadership skills.
It would be terrible if you quit your job and lost the opportunity where you are to address your weaknesses and strengthen all of your skills in an attempt to start over because you feel it would give you more control over your happiness, especially given all of the capital you have built up in that role over the years. Besides, if the problem is your desire to leave is a just an unhealthy response to stress or a challenging situation, it won't solve anything.
Just a thought, but one from someone who has been there.
What did I do in your situation? It took me a while but I watched that video, combined my awareness from it with formal knowledge of PMP (Head First PMP is good start) as a reminder of what project management is all about and what my organization did wrong as leaders of a functional versus projectized organization (a weak matrixed organization), and then I studied stress management to help me understand my own (unhealthy) responses to my situation.
If I had done that while still at my organization I would have not only felt empowered by the evidence and knowledge, but challenged to work on myself and the organization at the same time, and could have been perceived as someone with greater leadership potential that would have allowed me to level up. Even if I still decided to leave, I could have improved my skills while there to prepare for a move to a healthier organization that I would have been better equipped to recognize and excel at.
FYI I strongly considered a Masters in Data Science which would have had a narrow focus either as a developer, data analyst, or data scientist, but at the risk of competing with people who were younger and/or smarter, and rooted in those disciplines from an earlier age. I decided I should master my management and leadership skills instead, leveraging and building upon my knowledge and experience at a better organization. I am unemployed and working on that now. Once I get a job, even if it's a contract position, I can still take the online courses to get that masters degree from a top university and also take advantage of being around people in the industry that do what I aspire to do as mentors.
I sincerely hope this helps.
It took me 2-4 years to get on a level I was ok again with what I contribute in my role (lead architect). In these transitions I had the benefit of solid coding skills from way back plus having worked at a tier-1 corporate lab for a few years. I had the benefit that the company supported me but that came also with constraints on freedom and focus in recovering the skills.
Coding school may give you basic coding skills. The deep knowledge you would need to be a good coder however will take many years to acquire. I would be surprised if someone got to a more senior developer role in less than 4 years and going to architect before 6. Only then you will again be able to shape things. Until then you will have to implement what other - often a lot less qualified product managers have thought up for you to do. Often of the code will be for /dev/null as most projects fail in any case before hitting the user. I sometimes think salaries in tech will always be good as frustration tolerance is never going to be a commodity.
I found product management a very difficult proposition. It can be incredibly hard to add value in that role but then on the other hand it can be one of the most powerful and decisive roles too (Jobs do I need to say more). There is a lot communication and coordination and that can be fun but also can feel void. Shaping from that position takes serious political skills to acquire the necessary power and to wield it.
The way I think about these changes:
- what can you leverage into the new role?
- is there a plan B?
- do you truly like that type of work (tools, processes, travel, challenges, conflicts)?
- do you like to work closely with these type of people?
- what drives you? Long term vision?
- what are your strengths?
- what technical and interpersonal skill you want to learn? Will you learn anything new?
Would I have hired you when I was team lead way back? Iff you showed up with lots of enthusiasm for coding and passed our structured technical interview - maybe into a junior developer role. Willingness and ability to change was a key criteria for me. But I know I probably had to argue both technical staff and HR. I never worried about someone going for my role but maybe with you I would have worried about that on my side.
By all means learn coding. You may however want to give some thought on possible paths, risks and contingencies. Coding - considering your starting point - is certainly one option but comes with a high risk of significantly lower ability to contribute and ultimately benefit from it. Project management may be another. Consulting in the area of requirements may be another.
I can see through your words that your interests are to participate in those great new ideas and to achieve greater things but you can make it happen without that Bootcamp especially without quitting your job. If you decided to attend to a good university it was because you really wanted to leave a dent on the universe. There are cases such as the orchestra director where although he does not play any instrument he must at least learn to play one to understand the essence of music before being able to lead. But in our ecosystem what is rewarded beyond our vision is our ability to execute.I believe that you as a PM have one the most valuable assets because you can take any talented team and give them a vision towards execution, that they will appreciate because people do not know how to execute complex Things step by step the way that you do. Besides that if you give them that strong desire to accomplish excellence that breaks the molds. And that stamina to persevere even in the darkest hours you are set.
If I could go back 3 years in time, I would ask for the refund even if I had to pay something. Instead I would use that money to spend more time observing regular people, maybe participate inside university activities, labs, study groups and invite complete strangers to take espressos or beers with students or teachers and bond with them. Instead of being a solo learner I would encourage myself to be a part of a group. My job would have been to create any initiative with them on the topics I sought were worth it and even if I knew it wouldn't work I would put all my experience to support the implementation of these ideas. I might not knew how to type a line of code but I would have felt more alive to be able to see those ideas become a reality, even if it wasn't 1% my vision, even if if wasn't my code, even if I only was able to sit on a table with just one talented person and be able to keep him motivated and enthusiastic after the first prototype was made and help him with the first sale to come, that would have been enough. Instead of investing in Bootcamps you could interact more with humans, learn more about human behaviors, spend more time with your family or children, travel more to meet with more people and take advantage of the work you have right now to find mentors or talk with your peers about your expectations in those topics that you like to execute instead of being in front of your laptop fighting with your lines of code that someone you work with can do much better in less time.
Finally I have to say it surely was a blessing to become a developer, right no I'm working as CTO/CEO but I 'm about to let go, and I know it's going to be hard, anyways in your current situation where you have much more knowledge and experience, only quit to carry out your ideas but if you definitely want to play don't forget that sooner or later you'll need to delegate and learn to orchestrate and for that you don't need that Bootcamp.
P.S.: Forgive my bad English.
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.
Business analyst is a different role.