Ask HN: Where should I start as a 34-year-old switching to software as a career?

194 points by serbiruss ↗ HN
I'm currently a lab technician with a background in microbiology and would love to get into software development; however, I lack experience and I feel I'm too old to ever get a job in the field. I'd appreciate any tip!

131 comments

[ 1.9 ms ] story [ 213 ms ] thread
Depending on your background and how much time you have, bootcamps might be a good idea. I recommend looking into Lambda School.
What was your previous career. You could get in as a tester or business analyst. In smaller companies these jobs can end up requiring some coding.
Look around your lab. What problems do you have that software could solve? (It could be as simple as a spreadsheet.) Can you build that? If you can't, can you realistically learn until you can?

Then go build it. Congratulations, now you have experience.

Look around some more. What else do they need? Do you have to learn in order to be able to build that? Given that you've done one thing already, can it become your job to do the next thing?

You don't have to make a clean break, go to school or bootcamp, and get a whole new job. You can start just by becoming the "software tools" person where you are. Then, when you are ready for a new job, you've got a track record, not just a certificate from a bootcamp. Even better, you got paid to get there, rather than paying to get there. Downside: It took longer.

This was my path -- I didn't know anything about code, but had a problem at work that could be solved if I learned a bit. So I did. Then kept doing it -- finding problems, learning how to solve them, and then coding solutions. Eventually I built a tool that I spun into it's own company, and leveraged that experience to get interviews and eventually offers from large tech companies.

I did have to do a lot of extra prep at the end, to learn the stuff necessary to pass coding interviews (which is it's own skill set, separate from knowing how to create a working tool), but the end result is getting into tech at a similar age to OP.

I don't think you are too old. Many of my coworkers had erratic, non-technical careers (construction, military, fireman, etc) until their 30s.

Just prove you can solve business problems using code.

If I were to get into software again, I would completely ignore the hype and choose a robust set of technologies and exclusively master them. Namely, Java (Spring Boot), MySql, Jquery. These are some of the most mature and popular technologies available - you can build anything with these. After you have built this foundation and found a job, then you can move onto other technologies.

Create a github if you don't already. Pick a project (bonus points if it solves a real problem in your life). If you can't think of anything, build a TODO-list.

> Jquery

As a frontend developer (who's also old), I'm going to argue strongly against jQuery. I like jQuery. It's had its place. But it's on the way out. Your time would be much better spent learning vanilla JS (preferably ES5+ES6 but even just ES5 would be much better use of time than jQuery).

You can easily do anything with modern vanilla JS (and modern browser APIs like `document.querySelector` and `fetch` than you can with jQuery.

Otherwise, good advice, except I'm guessing you mean a "TODO List" app, not just a TODO list (and the concept of a todo list app may not be apparent to a non-dev, so: https://github.com/themaxsandelin/todo).

Also, I agree that the OP is not too old. After working for a few years as a software developer up to the dotcom bust, I went into health research for a while before returning to software. But I did manage to frequently use programming in my jobs, which made it easier to get back in. So I'd recommend trying to find a way to use some programming in the lab you work in before trying to switch, along with putting together some sample projects in Github.

Just be aware that you will run into ageism, and if you happen to deal with serious illness (as some of us do as we get older) and are out of work for more than a brief amount of time, that will be another big strike against you to overcome in the industry. You probably wouldn't face those to the same extent in research labs.

100% agree about jQuery. Even ES5 can easily replace jQuery these days and do so in a much more performant way.
> But it's on the way out.

In hip and trendy companies; every company I work with (banks, insurers) are using JQuery like it is the best thing ever and never heard about React or ES5. It will live for a lot longer than Silicon Valley thinks.

My company has a ton of legacy (significant parts of our site are in ColdFusion, for example), and jQuery is on the way out here. So... It's gotta be on the way out. :-)
I'm not in silicon valley, and I'm not in a start-up. jQuery is on the way out in all but the most archaic companies (many of the ones you mentioned are still struggling with how to maintain their Cobol code bases).
(comment deleted)
As others have mentioned I wouldn't even bother with jQuery at this point. Knowing a little bit of jQuery and why it was important for its time is good, but I'd replace that in-depth jQuery knowledge with React.

React will teach you modern javascript that developers are using today, position you to be an immediate impact person on most React teams and as you dig into the internals of how it all works will make you a pretty good javascript developer in time.

Java is fine, but I'd also argue that C# might be a bit better, it seems like at least in my immediate area C# is more popular than Java at this point and the core concepts are obviously transferable between languages. I think C# has the edge with its tooling too, you'll bang your head against the keyboard a lot more trying to configure Java IDE's and servers than you will with Visual Studio and maybe Azure for instance.

These days Java is dead simple if you're using Spring Boot. Bonus points if you use Gradle as a build system instead of Maven. Even easier.

It used to be a pain in the ass before the Spring Boot days. These days it's buttery smooth to get up and running. In fact, it's significantly easier than .NET Core startup.cs way of doing things tbh.

Having said that, I recently switched over to C# as it's just got slightly better features as a language and .NET Core is pretty nice to work with compared to the old .NET framework. It's updated and more modernized. Really enjoying it.

Javas ecosystem has some better offerings and usually all for free. Compared with C# where many libraries that you want to use are commercial, so you can't just use them without really thinking about it. Since MS embraced open source there is definitely a positive shift in the community and ecosystem but it will take time.

Go for it!!

I decided to change careers to software development at 37yo. Best professional decision in my life. I got a job after 8 months of full-time study.

Here you can learn more about my path, might be helpful: https://rodrigohgpontes.github.io/

I just focused on freeCodeCamp.org, which is a great resource. But I have the impression that taking a shot with https://lambdaschool.com/ might be more promising.

Write code for microbiology? Play with computational chemistry on GPUs?

A friend at work moved from lab rat to data analysis and experiment design, switching departments from Adjuvant Research to IT. A couple of years later, I left the company to go from sysadmin to software and tech writing, and it was tough for about nine months. He went from scientific software to security research at a new company.

We were able to jump because we had few family or financial commitments. So I have no idea if what I experienced is relevant at all. But if you feel pulled in the software direction, start writing something, probably Jupyter notebook stuff. Explain Like I'm Five years old what you have experienced already.

Going through the process of sitting down (or walking, then sitting) and writing something takes a bit of focus, perhaps. I wrote a book, then wrote software. I can't recommend writing a book without a real job (my book netted me about $0.25 per hour). But write something you show other people.

Before you leave your lab try to establish a relationship with the PI such that after you've proven out your technical skills they can write you a letter of recommendation as to your general work ethic etc. A recomendation from an established technical professional can go a long way! As others have mentioned if you have the opportunity to write software for the lab as well that's a great first step.
I'll be honest-- there is a lot of stuff you have to learn. It's a high hill to climb.

But if you really love it, then the work is fun. It's certainly possible for a newbie at 34 to learn enough. That's the trick-- find something in IT that you really like, and dig into it.

I'd suggest going to a bookstore so you can peruse some programming books. Maybe you like web apps, or mobile games, or even hard-core C code. Find what you like.

The next step would be to find open source projects in this area. Study those, compile them, and eventually try to make contributions.

I think that's a good path. Good luck!

Software development is not a career. The older you get the less desirable you are to software companies. Advise against a change to software development.
Any body with authority on hiring practices will put their two cents on addressing the elephant called 'ageism' in finding footing in a new field at this age.
I did a career change as well. It can be hard if you need to -take a cut in pay/title -work on “lower level stuff”

You may compare yourself a lot to peers who did not do career changes.

My piece of advice is to be prepared for the mental challenge that comes with volatility, and focus on this question, “am I closer today than yesterday?”

Fortunately software engineering is such a high paying/status field you may not experience the same feelings. But I’m 4 years into my transition and i finally just recently have started feeling some footing under me / more secure.

Talk with people and really get a feel for the field, the good bad and ugly. It’s a lot of investment to switch that can be so worth it.

Do it on the side and see how much you enjoy it. I almost did software engineering as well and occasionally think about it, but I realized it can be incredibly frustrating / abstract at times and I didn’t like that. What will it be like for you?

Develop any software for your domain (lab technician or microbiology) that solves a simple problem you see or encounter daily. Identify a problem in your current day job that can be solved with software like recording data in the lab, tracking supplies, etc. (nothing too complex) and come up with a solution (website to check-in/check-out, mobile app (?), etc.) and learn how to build it. It will not be perfect but you will have done something. Having domain experience will GREATLY make it easier to transition -- learning a new field and software at the same time is going to be rough.

https://sysadmincasts.com/episodes/51-mechanics-of-building-...

^ to add to this, when you eventually start looking for jobs, try to find a job in a domain you understand.

I transitioned careers to programming when I was 28, and my first 2 jobs were in finance. I dgaf about finance and didn't understand it at all. Made it far, far more difficult for me than it otherwise would have been.

This is a great advice. I'm a software engineer working as a freelance but now trying to create saas products and even if i have very good technical knowledge, my problem is i don't know any other businees domain so i don't know exactly what to develop. Starting from your domain of knowledge and trying to create a webapp (i suggest you that first and mobile later) to solve a real problem will give you direction, problems to solve and looking a solution for by learning and motivation during your career transition and, last but not least, maybe a product you can sell your own or evolve during time.
This is the right answer. There are any number of people freshly learned programming but those with a decade (I guess) of experience in some domain , that's way more rare. And then it's just basic supply and demand :)
Couldn’t agree more, and this isn’t exclusive to any of the other advice given here.

The son of a friend graduated from a CS degree last year and still doesn’t have a job. I told him if he wants to be a software developer, then he should just develop software, and showed him some scripts and games i’d written in Pythonista on my phone. Nobody has to give you permission. High quality dev frameworks can be got for free. You can run web apps on a free tier on Google or AWS web hosting. Developing mobile apps is easy these days and dev accounts with Google or Apple are very affordable. Get a GitHub account for your projects and build up some rep on Stack Overflow. You don’t even need to do anything super fancy or commercial, just interesting or fun or novel and demonstrate an understanding of a range of technologies. Put links to all of these on your resume.

Set yourself objectives. 4 months to get a web app running on Google App Engine (you can get a tutorial app working in an afternoon!). A month to figure out Github and upload it, and do this for future projects. 2 months to port it to AWS. 4 months to get an app into the Play Store, or App Store. All this can be done in spare time, half the time following tutorials and the rest on whatever your apps do.

I completely agree with this advice! Find a task that you repeat all the time and automate it. A pretty good place to start is just python, git, and bash. When I start a new job it's actually what I do to get my bearings. I keep a written journal of tasks, I make a notes README, and document repetition. I make bash scripts for shortcuts and to prove things, then I start working them into fabric[0] a (python lib) script. I keep all of this in a private git repository.

My older brother taught himself to program at 36. He was a 3D artist before, he had four kids and a wife and a full time job. He spent evenings and weekends building things for his wife's interest in photography and started blogging about his experience learning. He now runs a very successful company and completely changed his life inside of 3 years. He's not the best programmer, but he focused on the work and the assets that he had that were different from people who might be the "best" programmers, that edge is a huge asset.

I've been programming since I was 12 so it's hard for me to fully relate to starting new. Now at 35, I think the thing that people thinking programming is hard later comes from thinking of it like learning to paint or something. One unique aspect about programming is that it's a force multiplier. Once you grasp something, you don't need to reproduce it, you have it and you use it to prop up the next thing.

I'm biased towards python, but experience tells me it's one of the best starter languages because of it's flexibility. Whatever you're working on will always need a web portal, Django[1] is amazing. You can get started quick and python will allow you to do whatever crazy thing you dream up as well.

----

I've done a reasonable amount of programming mentoring and four things I've found about having limited time to immerse are:

1) Do things you think are fun! It doesn't matter if it's "relevant" to your track, learning to make it play is vital.

2) Give yourself easy wins early and often. If you find yourself stressing about not getting something, put it down and find a way to get something out quick. Once you have a win, take that new confidence back to your rudiments.

3) Never underestimate documenting your process and sharing it. Blog, draw your problems on paper and in a graphics tool, and keep a physical journal.

4) Try to wrap your head around that the feeling you have now about not knowing IS the state of being a programmer. As you get down the road you will be moving into the exact same state with a new "bigger" things. Something that does change is being able to tab into the sense of discovery and wonder easily. Enjoy it!

I believe in you! You got this!

[0] https://www.fabfile.org/ [1] https://www.djangoproject.com/

Couldn't agree more. I made the switch about a year ago at age 31. Previously, I was a manufacturing process engineer. I created some tools for me and my team, and my current employer hired me specifically because I "created real apps".

Companies want employees who are self-starting autodidacts.

Hi! I am trying to transition my career from the lab - I have about 10 years of experience in a gene sequencing company and currently considering software. I'd like to learn more about what you did and see if I can replicate your success, would you mind answering some questions?
Sure. What would you like to ask?
I have close to 10 questions and it might be difficult to answer if I post here. My email is workinprogressblogs@gmail if you don't mind I can send them to you directly.
I'll give the OP an idea for a project, based on a problem I have in the lab: Pulling Pipette tips.

Any mol-bio lab has seen one of these guys around: https://www.sutter.com/MICROPIPETTE/p-97.html

Anyone that has had to pull tips knows how much it sucks. It takes dozens of glasses to finally get all the parameters working well, and that takes an hour minimum. After all that, you then get to start the experiments. And then a storm comes through and messes with the pressure and humidity and all the parameters are wrong again.

So, if the OP could program a calculator-thingy that takes in current conditions, some parameters specific to your lab and your puller, what you want the resistance and tip angle to be, and then spits out a set of numbers to program the puller, that would be SO USEFUL! I'm not saying that I want the exact numbers, but I'd like a pretty good range of them.

You don't mention WHY you want to get into software. If it's just because you think you can make a lot of money, that's a poor reason to switch careers. You also say you lack experience. Do you mean you have none at all? That would make my first question even more important.

If you have no experience at all, take an introductory software course at a local community college. An online course or how-to book would be a less ideal starting point. You will want more access to an instructor to get you past zero. Understand that you will also need some understanding of algebra and formal logic before you get very far, so if you are rusty or never had much math background, you might take a course in that too.

Getting your feet wet will help you understand what "software" means and if you have an aptitude for it. Only then, should you commit to at least 1-2 years of hard work in your spare time to get to a minimum set of skills that are employable. With patience, perseverance, and a bit of luck, you can get there even at 37.

> If it's just because you think you can make a lot of money, that's a poor reason to switch careers.

I strongly disagree with that. More money is a perfectly sound reason to choose a career.

It is if you already have the skills. Some people realise after a few years in one area that they've become an expert in another area which might pay more. It doesn't sound like OP is like that, though. He might not like programming. He might not be good at it. He could waste a lot of time just trying to "make more money". He should instead pursue it only if he enjoys it and then maybe he'll end up in the situation where he can change.
Is a life spent working on uninteresting material a life worth living?

It can be soul sucking. Don't make the mistake of chasing money, at least not twice. It's not for everybody.

Most modern day jobs are purely material, soul sucking and ungrateful. I look at things the way they are and have learnt to not expect anything but money and respect from work. Anything beyond that, seek outside of work.
> I feel I'm too old to ever get a job in the field.

I have been doing this a long time. There are stories about places that do discriminate on age, but I have never encountered this myself and its illegal to discriminate on the basis of age for people 40 and over, so I suspect this is rarer than many people will suggest.

Really, its all about attitude. If you are entitled and constantly look for things that are easy you will be treated as a beginner. If you have confidence and are ready to accept more challenging work at risk of failure you will be treated as more of an adult. Some people figure this out at an early age and some people never figure it out.

The above advise might sound like common sense. Perhaps in other programming disciplines it might be common sense. As a JavaScript developer all I ever hear about are people wanting to make things easier and panic if they aren't isolated to their single pet framework. Since these behaviors are the norm, in my line of work, it doesn't take much to stand out.

Step zero should be to see if you actually enjoy software development. It would suck to switch careers and find out that it's not a good fit for you.

I would suggest starting with Processing. It's a very simple programming language with very easy-to-use tools which was made specifically for learning by non-programmers. Just go through the video tutorials at https://hello.processing.org/ or at Khan Academy.

You may never use Processing again, but the concepts will carry over and it will give you a feel for what learning to program is like.

Hi! I am a little biased because writing software, in my limited experience, can maybe have a similar likeness to being really great at the piano -- imagine being Beethoven and writing & playing music -- a flow state intense and expressive, but only because the skill in a moment in time very adequately matches the challenge.

One of the most underrated things I think about learning software, and I'm sure many things, is the ability to easily match yourself with a perfectly suited problem and feel the feedback very, very quickly... just make sure you can understand the basic grammar, like assignment (=) or keywords like 'let' and from that sentences will begin to cluster in your mind :)

And maybe as an easy practical thing, maybe don't add the whole weight of a label so early, and just enjoy some problems on https://projecteuler.net/ like you might enjoy playing with blocks or magnets as a kid

Have fun and enjoy the triumph, solving the problems can be very rewarding

The first thing I would say is don't let your age stop you.

The next thing obviously is that you'll need to learn how to write software. I'd recommend you work through a few beginner tutorials and then pick a project and just start working on it. I don't have a huge sample size, but people I know who've started learning to write software because they wanted a problem solved and thought it could be done with software have generally succeeded in learning, while those who just have a vague desire to learn generally don't.

If you can't find a project that interests you, I'd look into boot camps or just going back to a traditional college for a degree in CS. Those paths will have the additional advantage of putting you at the start of a pretty clear pathway towards getting a job.

As far as finding a job, I suspect you can leverage your lab/bio background. Domain expertise is very useful in software development. Looking for jobs with companies that can use your background can help you compete with others who might have stronger software backgrounds.

I started as a programmer at 30.

I got a 2 year degree at a local college and took the first programming job I could get ($21/k year). 10 years in and I make 6 figures working for a major bank.

How to get started? Pick up some classes? Pluralsight, udemy, etc? College classes?

Do you have wife? kids? car/house payments? or can you afford a low paying job? Are you stuck where you are or can you move to a tech spot? Take risks accordingly.

Leverage your experience - programmers make stuff for... businesses. You have experience. Connect the two.

Do both: Microbiology + software development is your golden ticket.
So, you need some sort of credential. A bootcamp would do well, some sort of certificate of a course of study from Coursera or edX, a non-degree certificate from a university. Pick a tech stack that's both modern and enterprisey -- Java, .NET, Ruby, Node.js are all fine, but if you go with them, get current. On the front end, you want to find something trendy. Try looking for some jobs you think you'd want to apply for and see what they're asking for on the requirements side and focus on that. You want to do some projects that can showcase what you can do. You need to tailor your resume to the jobs you want -- spend as little time as possible talking about your experience as a lab tech (enough to show where you've been the past ~10 years and showcase any soft skills you know), and as much time as possible talking about courses and projects that give you experience in the stuff the job ad wants. And you absolutely need to write a good cover letter and you need to avoid boneheaded mistakes like not changing the name of the employer you're submitting to. Your cover letter needs to sell how you can create value for the position you're applying for -- what have you done in the past that prepares you for this. Don't sell yourself as motivated, a quick learner, any of that... there are 30 other resumes in the pile that say that. Sell yourself on "I have done X, Y and Z as projects to develop my skills as a software developer, giving me these skills that I can use to create value for you."
I totally disagree. I don't think a credential will help at all. I think you need projects that you can point to and explain. I also feel like it will be easier for you to get a role at a company that also would utilize your past experience. This way it is easier for them to justify someone more technically junior at on the software engineering side.
I think it depends largely on the market you're in. In a rural area (or something far enough away from a large city) and may not have a lot of supply of software developers: credentials likely don't come into play as much. Raw experience may suffice.

But more populated areas will mean larger talent pools. Unless you're in a tech hub or a fast growing mid-size city, the amount of software jobs might not serve the pool. Credentials will matter more. Practically speaking :)

I switched into software with a non-STEM background, been an engineer for about a year now and have heard / seen a lot of hiring conversations both during my process and since then at my company. Projects that you can point to and explain are valuable if and only if you can even get on someone's radar. The amount of "projects" that people are doing in their own time is becoming dizzying, and for employers to actually spend time to parse through what is a good project vs. what is a boilerplate tutorial project is not realistic.

In my case, my employer happened to hire people from my particular bootcamp, and had good experiences with those hires. Coming from that bootcamp is what got me in the door, no amount of "projects" would have done the trick. It's very hard to say "I'm legitimate, see all these projects I've done", because unless you can have a very clear timeline of "I did this project two years ago, and I've been diligently learning ever since as noted by this, this, and this project", it's just another person with another github with another project. Absolutely zero reason to bring that person in when you have other applicants with actual backgrounds + a project or two.

All this is to say, I don't think this advice applies nearly as much as people believe it does anymore.

I actually think there are whole cliques of companies and people where credentials do act as lock and key. It's as if there are two totally separate programming worlds, one of which actually believes in credentials and which the HN world rarely communicates to. It's wild, and I'm not sure what to make of it.
At many employers you need to pass several screens before you can get into a position where someone is able to review your project that actually knows anything about how to evaluate it. Some places have systems that scrape text out of resumes and do keyword searches as filters. Your resume is often read for a first step by someone who doesn't understand the job at all. A clear credential of _any_ sort can often get you past these hurdles to a point where you can get to dealing with someone who can look at your project and determine if it has merit. But the best project in the world cannot help you if you don't even get to that point.
Is my shop the only one that is skeptical of bootcamp graduates? The thinking is that they have a deep skillset but in an extremely narrow track.

It's like they know how to use a hammer and a screwdriver, but they don't know why you would use a nail instead of a screw (or which thread pitch why) instead of a bolt instead of a jointery technique.

Maybe it is just that our company has a bunch of old timer generalists that aren't very good at interviewing someone with a narrow skillset? I know we try to, but it feels like the bootcamp people we've interviewed didn't have very good problem solving skills. We've successfully hired more junior people, but not from bootcamps.

What are we doing wrong?

not sure you're doing anything 'wrong', but the few times I've seen 'bootcamp' folks hired, it was specifically to be on a larger team that focused on 'team'. A bootcamp person is not going to be able to just be dropped in to any problem in the stack and manage it on their own.

In a company of generalists, this is very likely how you operate, and you'll see little value in bootcamp folks.

As a generalist, I tend to be in that camp - seeing little value in bootcamp folks. Or, I should be more precise - the way I operate I don't see that I could get much value from bootcamp folks (I'm either independent, or work with other generalists). I'm not set up to be able to get much value from narrow-skill bootcamp folks early on.

Their value will be for shops that have teams of people where dropping in one more pair of hands has some incremental value. From there they will get more experience and can learn to be of more value in more situations.

That's just been my own observations talking with some folks about their 'going through a bootcamp' experience over the last couple of years.

you're not too old.

You also have one thing that might work to your advantage, which is all your design experience. There are a lot of smaller jobs that require a little, but not a lot, of each skill. Basically, anyone needing an inexpensive, relatively simple web site or application would be a good candidate. I, for example, would be more than capable of creating one for just about anyone, but not by myself. I have absolutely no design skills.

You could start pretty quickly by researching which languages/platforms most fall into the small project category, and choose one on which to focus your studies. If you want to start with web site, you should probably look at PHP + WordPress, or an e-Commerce platform like Shopify + Ruby on Rails, or maybe something with Python. If apps are more interesting to you, IMHO it's a steeper learning curve, but you could get by with Java for Android, or Swift for iOS, or maybe try to learn an all-in-one platform like Titanium, etc.

Good luck!

i am 30 now, and started at 24. i'd be willing to train you.
age is just a number. that being said I don't recommend a bootcamp.
I want to share a little story with you. I recently attended a GraphQL meetup. The host presented the app he is building and was very knowledgeable, answering 90% of the questions thrown at him without any hesitation. So far, nothing about the meetup was remarkable. That is, until later that night, when I spoke with the host in greater depth.

In his early 30s, he decided to leave the public school space and pursue software development. He found specific things in the field that interested him and aggressively consumed information about those things. He read about and tinkered with code on his lengthy bus ride to work each day. He began presenting little things he was building at local meetups.

One night, after presenting at a meetup, a developer approached him and asked if he might be interested in interviewing for a new position which hadn't even been publicly posted. He agreed to interview and was hired shortly thereafter. All of this happened within a year's time.

You're definitely not too old to start! I would recommend you follow your curiousness and not simply follow where the money is at some given point in the industry cycle. Curious people go far and are less likely to quit. People into the idea of software development typically become overwhelmed and try something else because they lack a sturdy base.

Programming is my 3rd career (I was a travel agent and an ESL teacher before that). I joined a bootcamp when I was 34. People in my bootcamp class who were older than I was were able to find jobs as software engineers, and (at least according to their LinkedIn pages) continue to write code today.

Age discrimination does exist, but so do companies that actively look for age diversity in their junior engineers. Unsurprisingly, success in this field has much more to do with your mental attitude (i.e. fixed vs growth mindset) than with age.

I empathize with your preconceptions about this field (I shared them in my newbie days), but I can't emphasize this enough- I believe that almost anyone with a growth mindset and a certain amount of grit can become a software engineer.

If you acquire the right knowledge and the skills to communicate that knowledge succinctly, it will be easy for you to demonstrate why you'd make a good hire.

Since this is a huge field, you would be better off focusing first of all on one type of development. For example :

- Web Development

- Data Engineering

- Mobile Development

Web development is probably the easiest to get started with so let's focus on that. If your interest lies in Data for example, then the tech stack would be quite different.

For web development - My suggestion is to skim the basic protocols and standards (HTTP, TLS, HTML, CSS, the DOM e.g.) and build the simplest possible React application. This will give you a base to build on.

Once you have some basic knowledge of how to build a simple web app, its important that you learn the basic developer tools. E.g. Being able to use Chrome devtools to debug your application, being able to see the network traffic between the browser and your web server etc. These will help you in development and also deepen your understanding of javascript, http and other web standards.

Its also important to master a good editor. For web development today, I would suggest using Visual Studio Code. Learn how to navigate your code well using the editor, refactor code, get into a productive dev cycle.

After this, there is an endless ocean of stuff to learn. Web Security (OWASP), various features of Javascript - a constantly evolving language, perhaps even Typescript, managing images and other assets, how to modularize your code, learning about the event loop in Javascript, mastering asynchronous programming in javascript and so on and on. That is a lifelong journey - you cannot learn it all at once. I would suggest taking a structured course online which could walk you through the basics in one or more of these areas.

Wish you all the best!