How I successfully became a software engineer in 3 months
blog.edmondhui.com
blog.edmondhui.com
Articles like this are appealing because they paint a rosy picture of easily jumping into it, but in reality, it’s usually much harder. Those details matter.
That gives you interview prep, LinkedIn support, resume building and most importantly networking with hiring partners. I have no doubt someone can become a dev in from no experience in 3 months, because I've seen it happen personally hundreds of times. But without the career services it is far more difficult to break in.
After a year of experience I was getting legit decent offers - initially almost entirely via referral. I stayed around the initial company because I was still learning a lot. Many years later I am a senior engineer. The world does open after the first job but getting the first one is hell.
Don’t underestimate the class signaling that companies and hiring managers look for. Being some person with a portfolio and no experience almost never seems to make anyone take notice or consider an interview. I haven’t figured out how one would best repeat what I did - there’s lots of very viable and capable (and diverse!) people I know who’ve never been given the chance.
I’d love if there were companies that offered apprenticeships - plenty of people out there would take low pay to get some real experience.
They don't say if they actually have found a job yet, which makes a pretty big difference to how we understand "how I successfully became a software engineer"! If they have, I'm curious if the boot camp played a role in placing them and what that was like if so, otherwise how difficult it was to find a job, and either way if the working conditions and salary were what they had hoped for or expected, etc.
Source: I switched into CS and applied for jobs for 4 hours a day and went through all the coding challenges and interviews and rejections
We can make fun of bootcamps, but the people going into them are by-and-large trying to make themselves better than they are. Its the human condition and should be our goal.
I could disparage the reasons someone gets into programming (though, I think, money is a fine one), but if they then take positive actions to train, grow, learn then that is a net positive.
Look, we all know people who complain but never fix things. I have family members who I dearly care about, but they would rather whine about X/Y than take a step to fix it (or fix themselves). Someone taking the time, for whatever reason, to become more than they were before is a net positive I think.
Perhaps its more than you care to know, but its an important topic for me. I truly believe one of the reasons we are on this world is to become more and to grow. I appreciate people who try.
I guess what really eats at me is the trivialization of software development and the hubris that a 3-month bootcamp can bring you to a place to "tackle anything you put your mind to" when that is the farthest from the truth.
It depends on the mindset that we take with us, to our first job, and our eagerness to learn. I feel that bootcamps usually filter for people that are serious about bettering themselves, and also enforce a certain level of Discipline. My own schooling was at a "redneck" EET school. It was exactly the kind of thing that popped up in droves, after Vietnam, to mine the GI Bill, and folded, not too long, after. The school, itself, was no great shakes, but it taught me Discipline, and enforced a work ethic that still pays dividends, to this day, 40 years later.
Welcome to Hell, kid. The learning never stops.
Welcome to Heaven, kid. The learning never stops.
Code boot camps tend to be a bit one-dimensional and only give the students a slice of the basics, most often including setting up a work environment and focusing on lessons that produce immediate results and/or feedback. People interested in software development don't realize how easy it can be to get started making small projects, often needing their hand held at that critical entry point. Boot camps can help lift the veil of mysticism and show that software development isn't sorcery.
It makes me a bit sad this trend of "become a developer in 3 months". It's just a dream.
Within my first year without a formal education I was shipping major features out to customers. Yes most of that year was big squashing, perf optimization and helping others with features. 10 years later, I am still learning - I hope that part never stops.
In my team there are people with 2 or 3 years of experience who need 5x to 10x the time it take a senior developer to do.
As I said, maybe we're just unlucky. Or maybe the whole IT sector is used to low-quality, low-efficiency jobs. Who knows.
There's a lot I couldn't do, of course, and there will be a lot that bootcamp devs can't do. But it's a start, a foot in the door. And it's also a kick up the ass for anyone who doesn't have the discipline to just sit at home studying for months.
I suspect both you and I made useful contributions before we hit the 10 year mark, if your young devs are just doing menial work either they're just not very good or they aren't being given anything solid to work on.
Just as an example, let me tell you that we currently have a (self-taught) intern which is years ahead of two developers from bootcamps which have been working with us for over a year.
Getting a job position doesn't automatically mean you are suited for that job, or that you're good at it.
And while there are good dev bootcamps, getting out of one and finding a job, doesn't make you a developer (or an "engineer" either, which in my country is a regulated title)
100% agree that getting a job doesn't mean you're good at it - but getting paid to do programming is the easiest way to keep learning. Maybe a good way to get people improving quicker could be to give them self-contained individual projects and allow them to get stuck and solve their own problems, I don't know? I do see devs spending days asking each other for help on stuff they could probably solve if they thought hard for an hour. Collaboration is good, sure, reinventing the wheel is bad, yes - but just diving in and wrestling with a problem is good practice and (eventually) fun.
I also won't call myself an Engineer for similar reasons, though an American company did give me that job title once.
If, as it looks like, he's writing this two years after that experience and still does not feel a little bit of that imposters syndrome, than I would argue that he's doing something wrong. I would say part of being a software engineer is being aware that your code could always be better and that are always some areas of knowledge that deserved more research, a context that makes the word success somewhat meaningless.
Nothing against immersion bootcamps, but just because someone learned basics of a language and completed a few web pages or some microservices doesn’t mean they are equivalent to someone with a CS degree and years of experience developing side projects while in high school and college, which meets the profile of many CS grads.
>In 3 short months, we learned everything necessary to become software engineers.
Just 'no'. This is a case of not knowing what you don't know.
I think more people should be encouraged to try and jump into tech career if they have the time and resources and encourage them to do; salaries are higher and demand for talents are still pretty high. It can be a life changing experience.
Stop bitching if the OP is a jr / developer or whatsoever. He got a tech job anyway. We should clap for him not be pedantic about it.
Building web apps isn't rocket science lol. You're just positioning divs on a screen and building basic CRUD apps.
You can indeed learn most of what you need in 3 months. The rest is learned with experience in the real world.
Nobody is learning, actually learning, all these topics in a condensed 3-month program.
Good programmers are always going to have work, because there simply aren't enough good programmers.
For a non-FAANG, absolutely. But for a FAANG after browsing Blind for a while, it's more about grinding Leetcode a few hours a day for 3-6 months :yikes:
“How I successfully became a software engineer in 3 months”
and
“How I became a successful software engineer in 3 months”.
Why do workers feel and express this shame, but owners are no target of it outside of blatant abuse cases? It's a sick trick against workers
Am I the only one who cringed at this? Dunning-Kruger would like a word. I've been developing for near a decade and am just realizing what it means to become a software engineer; and it's a whole lot more than just hands on keyboards.
I've met, and worked with, people who thought like this - they always had a mind-boggling blind spot for their own failures. If they actually encountered something they were unable to do, or made a mistake, their brains would just seemingly erase any memory of the experience.
If you think that you've learned everything needed to become a software engineer in three months, wouldn't it cause you to wonder why four-year programs exist? Has this ever occurred to OP?
Nice to hear about someone going the other way.
He says ‘Junior’ later on, and if his job role says software engineer he can use the term.
No.
Language also involves. When words lose meaning people abandon them.
> Shaking your fist at the term "software engineer" isn't going to roll back those changes
And yet many countries has been capable of regulating words like "engineer", "medicine", "certified airline pilot" for very good reasons.
If he writes code he's an engineer.
However many SWEs do have the same engineering mindset, just applied in a different space.
In my experience the title "Engineer" is a legally protected one, and those using it without proper licensure can suffer penalty - take a look at the Strongtowns case for one example. But those in the programming world seem to be able to throw around the title on a whim. Any discussion/history/insight would be appreciated.
I saw it used for people with an amount of learning comparable to a real engineering degree.
Engineer means, "Clever builder", how does that not describe software engineering?
Now, someone with a degree called Software Engineering may well have had a somewhat different education than someone with a Computer Science degree. That's another matter, and whether the former makes them an engineer in the protected sense depends on where they are and exactly what the degree program was.
I looked up "Strongtowns case"[1]. Notice they open with "A small group of professional engineers are using the licensing process to stifle calls for reform...". They _mean_ "Professional Engineers" (state-sanctioned engineers who have licensing rules) but are unaware, or are being disingenuous about, that it is a legal term and refer to them as "professional engineers" (engineers who aren't amateurs). This is the equivalent of saying "The American Medical Association is using licensing to restrict changes in medical reforms..." as opposed to, presumably, allowing untrained non-medical personnel to make medical reforms. Also notice, that the author dropped the term "professional" as the article went on.
In the software world, there is no distinction AFAICT between "software engineer" (SWE), "developer", or "programmer"; they are just terms used to make the coder feel important. A "senior SWE/developer/programmer" is anyone with a minimum _three_ years of experience, regardless of schooling.
IME, most software "engineers" know nothing of basic engineering practices: documenting research, testing assumptions, learning how to write correct documentation, proper project development, etc. If they can sling code, they're an "engineer". Mind you, SW engineering isn't nearly as robust as Civil, Mechanical, or Electrical (and other licensed) engineering disciplines but it's been around for less than a century whereas some of the other engineering disciplines date back well over a century, if not millennia.
I've heard, but have no sources, that companies that employ "software engineers" have lobbied local (read: state) regulatory bodies to exclude "software engineers" as it would make hiring them more difficult (reducing the available pool), subject them to legal regulations and hence liabilities, and cost the companies more money in salaries and legal obligations.
Mind you, I've got nothing against people going to boot camps or being self-taught in software development. I'm self-taught. But I also have a BSEE degree, did some master's work in EE, was an EIT (not that big of a deal, but still), and have worked in the field as an engineer but not a PE. I do my best to keep up on standards practices and principles (not necessarily the framework du jour). I have earned the title "senior" by doing this stuff, professionally, for 30+ years.
puts on their asbestos suit
[1] https://www.strongtowns.org/journal/2021/5/23/lawsuit#:~:tex....
Brrrrr.
Why the hell this is allowed when talking about software is beyond me.
If you have a laptop, congrats you're now a software engineer.
Similarly, woodworking tools do not make one a carpenter.
There's no qualification required to become a "software engineer", so you can absolutely become one (maybe not a very good one) in 3 months.
If you have to program ANYTHING that serves requests and has a limited buffer you enter the domain of queueing theory.
Processing internet packets? Queueing theory.
Developing a distributed system? Queueing theory.
Designing software to manage a call center? Queueing theory.
Shipments? Ticketing? Payments? A myriad of other things? Queueing theory.
Fun fact, while posting this reply HN redirected my to a page "Sorry we're not able to serve your request this quickly". Guess what would have helped?
Queueing theory.
What exactly is queuing theory going to tell you about managing a call centre? Why would I need to know some deep theory to be able to stick calls in a FIFO and deal them out to agents?
Are you just proud of having studied queueing theory?
Edit: lol, love the downvotes. The fact is, 10 years of Agile TDD OOP cargo cult only makes you a marginally better Engineer than a bootcamper.