97 comments

[ 2.8 ms ] story [ 148 ms ] thread
I truly love success stories like this.

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.

You cannot claim this with any certainty. I would counter-claim that many who go into developing are in it for the gold-rush mentality (I can get paid $$$) which ultimately lowers the quality of software. I'm not doubting there are those who go into it with good intentions but it's not something that is cut out for anyone and those who get into it because it's a bright, shiny object are doing themselves a disservice.
I respectfully disagree.

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.

You're misrepresenting my sentiment. I support people trying, but it's annoying it see people portray themselves with what is obviously false confidence after going through a bootcamp, of which is talked to death on HN. That's great this person is trying to better themselves but they are at the very beginning of the long process of becoming an actual, productive software developer.

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.

Most developers I know who are self taught have been passionate about building things for a long time and have been experimenting on their own time for a long time before they got their first SE role. Even with the potential financial rewards, the amount of learning one must do on one’s own time is too large for someone to just walk up to it. I find that there’s a lot of people with CS degrees like this though who just wanted that degree to make more money, and then find they really dislike the roles.
I am one of those people - no CS degree, self-taught and ground my way up to FAANG. Never once did I think I could "tackle any problem I could put my mind to" until around the 10 year mark.
I am the same (though I avoid FAANG for ethical purposes) - I don’t feel like it’s a reasonable statement to say anyone can tackle any problem, but within known domains there’s little that can’t be done given enough time
I would never make fun of bootcamps (my own journey has been ... "non-linear" ...), but I think that it is very important that people that attend them, have a mindset of "This is just the first rung of a very long ladder." I don't really appreciate recent bootcamp grads, lecturing me on how "I'm doing it wrong." The fault for this, usually falls on the bootcamp teachers, who present their information as "The One, True Way, and All Others Are Heathens that Will Burn In Hell." It's a great way to get the students pumped up and engaged, but has ... drawbacks, when in the work world.

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.

OTOH, reducing complexity is one of the most important things in working on an engineering team. Having “one” way to do things rather than the nnn*n helps anyone new to be able to focus more on the system itself rather than picking up a new tool for every task. There’s 1000 ways to build something and the lack of structure makes people feel overwhelmed easily when trying to learn.
you should probably avoid the term engineer and use "developer" instead, and "junior"
> I was hired as a junior software engineer at a tech startup

He says ‘Junior’ later on, and if his job role says software engineer he can use the term.

In his jurisdiction (NYC), probably. Not everywhere, even though in places where this is technically prohibited (e.g Canada), it is poorly enforced.
Just because something is legal it does not mean it's reasonable.
Just because something isn’t reasonable doesn’t mean it isn’t correct. If someone is hired as a software engineer and they refer to themselves as a software engineer, that’s their prerogative. Do I think it’s reasonable the term is used for people without professional experience or formal education? Not really. But that’s how it is and we shouldn’t put someone down (as OP seems to have done) because of it.
> If someone is hired as a software engineer and they refer to themselves as a software engineer, that’s their prerogative.

No.

Language evolves. Shaking your fist at the term "software engineer" isn't going to roll back those changes. If my title is software engineer (it isn't, it's ML engineer), and that's what recruiters looking at my resume will expect for the kinds of jobs I'm qualified for, then by golly I'm going to call myself an engineer.
Sounds like I hit a nerve there.

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.

It's just his imagination..
Why?
because of not understanding its meaning
Why? Are the people that drive trains(original engineers) going to be upset?

If he writes code he's an engineer.

(comment deleted)
The classic definition of an engineer is someone who practises applied physics.

However many SWEs do have the same engineering mindset, just applied in a different space.

As a non-computer "real" engineer - what is the actual designation between these two terms in the CS world?

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.

In 2022 anyone that writes code is an engineer. Words change meaning.
Very little protection of the term in software across most countries. You can become a chartered engineer from software but you still need your undergrad/masters. Wether software development is an engineering discipline or an art is left to the reader (strong arguments for both sides and no one wins). There are definitely fields in software development that feel more like engineering than others, for example aerospace software. However without requiring an engineering degree/status to get those roles you can’t really tell from the job term what is and isn’t engineering-ish
In some countries it's not legally protected... unfortunately.

I saw it used for people with an amount of learning comparable to a real engineering degree.

It's a very fuzzy distinction now, but for me I feel a software engineer is someone with enough experience and low-level knowledge to be able to understand and design complex systems, troubleshoot them, and have a good understanding of the tools they use and why. Whereas a software developer more so just writes code. They make simple systems but don't design bigger, more complex ones. They may use cloud technologies and other systems to help scale their projects, but won't have a great understanding of the tools they're using. They also likely won't know what metrics to gather, or which to look at to see where issues may lie, or which to use to design new features.
In the US it's a title and nothing more. And an HR one, not a legal or otherwise formal one. An HR title. Don't listen to anybody who tries to tell you that programmers with 'engineer' in their title are more 'rigorous' than people with 'developer' in their title. That is pure retroactive continuity and hasn't yet been widely backed up by anything.

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'm in the same boat and have often wondered the same. I feel like it's just not persecuted.
In the USA, the term "engineer" isn't protected; the term "Professional Engineer" is. To be a PE requires you to first take the Engineer-In-Training test (making you an EIT if you pass) which is generally taken as part of your graduation process but need not be. After apprenticing, you can then take the PE test. These are state-sanctioned terms. Being a "Professional Engineer" carries various legal obligations; being an "engineer" does not.

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

As far as I can tell, the only US states that care about the software engineering distinction are Texas and Florida. And it's for legacy bureaucratic reasons more than anything. I'm not personally concerned about someone incorrectly assuming I, software engineer, am the right person to design a bridge.
Fluff article that seems to be just a dark pattern/undercover advertising for the boot camp. Not a whole lot of actual 'how' other than the basics of anything. Show up, do the work, and out effort into it. But mentions the boot camp six times.
I wouldn't think that 3 months is enough time to decide if success has been reached
Easy to get in. Hard to get out.
Let's just say that it's a difficult path towards woodworking.
> In 3 short months, we learned everything necessary to become software engineers. I felt like I could achieve anything I put my mind to.

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.

> In 3 short months, we learned everything

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.

The problem I see, especially for someone who is entering the field of software development, is the lack of critical thinking.

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?

I suppose the counterargument would go something like: four-year degrees are full of cruft that has no impact on your ability to do software development work. That's undoubtedly the case to some extent; my extra year of French and my philosophy electives don't help me very much day-to-day. I bet you could condense a program down to something like 2-3 years, though I can't imagine how much someone has learnt in only 3 months.
I would argue that this is an issue of American colleges… in my home country (Italy) when you attend computer engineering university you only study engineering topics. No humanities at all.
I know several software engineers who look longingly at real-estate management and it’s default literal rent-seeking monetary rewards. Some have even taken the plunge.

Nice to hear about someone going the other way.

A lot of people from HN have no CS or engineering background and we can still make a living in the tech world in technical fields.

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.

Happy for him if that went well and he got a job out of it, but:

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

Must admit I find it discouraging that I spend years in university years ago when people now just finish some self-learned material in a matter of a few months. It is only getting simpler every year. I don't see the future being bright for this discipline if the sentiment is that that is all it takes.
Not sure why you find it discouraging. Having a degree means you probably went through a more formal process and were exposed to a more academic-way of studying things which can benefit your career as well as your personal life. Knowledge is always good!
(comment deleted)
> I don't see the future being bright for this discipline if the sentiment is that that is all it takes.

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.

Exactly I think there are different types of jobs. If you just need to make a basic web site I am sure you can learn those skills in a few months. Being able to build real systems is another matter entirely and requires a lot of learning (formal or not) and years of experience. For me this is the difference between a developer and a software engineer.
Code monkeys are different than programmers (or "software engineers").

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.

This guy has a degree and worked in commercial real-estate. He's intelligent and capable of working in tech. Bootcamps are retraining programs, not degree programs. They're not going to turn dummies into software engineers.
Most programming these days is just a very shitty version of configuration management.
The most important part is missing from the article: how they found and got accepted for the first job. The hardest part of switching isn’t attending the bootcamp, it’s finding a company that is willing to take a chance on your lack of experience and future growth potential. Doubly so for switching into the industry during Q3 of 2020 and fully remote. Did they get extremely lucky? Did they go to school with the hiring manager? Was it something in between?

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.

True. I have experience working as an instructor at a bootcamp. I've had the opportunity to learn more about bootcamps as an industry....The best bootcamps (highest placement rates) without fail offer a career services portion as well.

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.

Correct. I am self taught but it is only through my somewhat relevant experience as a project manager and in IT that a company would even give me an internship based on a small demo and a recommendation from a lead engineer that I had promise. I have no idea if I would have been able to “break in” otherwise. They paid me next to nothing and I could afford that. It’s a lot of privilege and luck that got me in. I don’t recommend others try to follow my path, but I also wish it were easier to do so.

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.

Yep, went to the article curious about that, went back and read it twice to make sure I wasn't missing it, and came here to say this!

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.

Just apply for jobs on indeed for 4 hours a day and go through all the coding challenges and bullshit interviews and rejections. Stop making this an impossible mission. Companies are paying you to solve problems through software and yuo can't solve your own? fuck outta here
I’m surprised by your tone and assumptions, and I think you may be misinterpreting what I wrote. If the author had gone through that process and included it, it would be a much more honest and accurate article. As it stands, the lack of any mention of the process makes the article shallow and overly “anyone can _easily_ do it”. I think an important part of representing switching into software is being realistic about the hard parts as well, and I found that lacking in the author’s story.

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

"How I successfully became a civil engineer in 3 months"

Brrrrr.

Why the hell this is allowed when talking about software is beyond me.

language evolves, but professional societies are important for workers, I think it will take a bigger revolution for workers to re-frame the term again given the now-standard title inflation to software engineer across industry, even here in canada
Because people expect bridges to work and software to fail.
Because the term [junior/senior] software engineer doesn't mean anything.

If you have a laptop, congrats you're now a software engineer.

If you have a laptop you have the tool you need to write software. But that does not mean that you have the skills and expertise to practise engineering applied to building software products within strict constraints.

Similarly, woodworking tools do not make one a carpenter.

They should call themselves "programmers" - if they can actually do the job of programming what they have been taught in that bootcamp (and it looks they can, being employed now). But engineering is a well defined term and sometimes even protected in many other places. I work with people of all kind of backgrounds, but you can definitely notice the difference in feedback you receive from somebody with a university background (which I would call engineer).
Because you can't really teach yourself civil engineering. A degree is more or less mandatory so all civil engineers have at least 3 years of learning behind them.

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.

I disagree. There are things that should be required for a software engineer to know. Queueing theory comes to mind
I'd wager any problem involving queuing theory could be googled/researched in under a day. Hard to call it a requirement when you can just.. look it up when you need it.
Is there any topic which cannot be googled in one day, civil engineering included? I certainly hope nobody employs "googling engineers" in anything requiring, ahem, "engineering".
Queueing theory is a weirdly niche thing to require. I guess almost nobody is a software engineer according to you!
(comment deleted)
Queueing is niche?

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.

Sure you could analyse all of those things using queuing theory but with the exception of distributed systems, TCP etc. and maybe super large scale distribution (e.g. Amazon warehouses), you 100% do not need to.

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?

What percentage of seasoned software engineers do any kind of formal model checking?

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.

I don't have formal CS education, but I've been working as a developer for 25 years. In the firm I've been in that last 15 years, only developers with 10+ years of experience actually make a difference. Others are either still learning, or just doing menial work.

It makes me a bit sad this trend of "become a developer in 3 months". It's just a dream.

There are plenty of web dev work around and you don't need 10+ years of experience to do it.
Do you understand that is just intern-level work?
TIL that there are only interns and people with 10+ years of experience.
TIL I can become a surgeon with a 3 months bootcamp
I'm not arguing that someone with a 3 month bootcamp is going to be a highly-qualified, productive software developer. But 10+ years to get to a productive state? That's not my experience, and I don't think that's because all the work I've ever been exposed to is "intern-level".
It's still work and needs done. How do you expect someone to get "25 years of experience" without giving them work to do?
Respectfully it’s not, and I’ve never heard of needing devs with 10 years of experience to do non-menial work.

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.

Maybe we're just unlucky with recruiting.

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.

I have a similar background, and my initial path into this job in the late 90s was definitely "become a developer in 6 months" using only books on HTML and Perl (and a pirate copy of Photoshop), so I can easily believe with instruction one can become a developer in 3.

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.

Ok, I probably was a bit too harsh in my judgement. Those "junior" devs are helping us a lot, and I was in that position for long, too.

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)

I could easily imagine a self taught intern being ahead of bootcamp devs, especially if the intern spent their childhood messing with Linux or something.

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.

It took me 8 months for my first job as software developer when I was 37yo, self-taught. I wrote about the decision, the learning process, the job hunt, if anyone is interested.

https://rodrigohgpontes.github.io/

> I believe everyone can be a developer if they put in the time and effort

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:

I notice the 'success' is in the wrong place. More laudable would be 'How I became a successful software engineer in 3 months'.
to me, seems like an app academy social ad
>I am 24 years old and I'm ashamed to say my goal used to be to make as much money as possible.

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

At a very young age I ventured into taking apart my personal computer to better understand it. When I was in my early teens I could build a whole computer with off-the-shelf parts without any help. My older peers would poke at me for being some sort of "tech wizard" because computers were something a lot of the older generation didn't grow up with at the time. I would take every opportunity to show interested parties just how straightforward it was that I did; Certain cards fit in certain slots, cables only fit in one way, and there were a few internals you had to be a little more careful with than others. Many of those people were surprised to see just how simple "building a computer" was, more akin to building Lego than something that needed a college degree and high amounts of technical skill.

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.

"Successfully becoming a software engineer in 3 months" is a sign that one is not yet aware of all the things he doesn't know.

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.

Software Engineer was already a questionable job title 20 years ago. Now it is even more questionable.

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.

There’s a difference between

“How I successfully became a software engineer in 3 months”

and

“How I became a successful software engineer in 3 months”.