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!
Develop <i>any</i> 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.<p><a href="https://sysadmincasts.com/episodes/51-mechanics-of-building-a-carpooling-service-introduction" rel="nofollow">https://sysadmincasts.com/episodes/51-mechanics-of-building-...</a>
Find a bootcamp that has a good record for placing people into jobs, or advertises it, or has a reputation, or has aligning incentives to do so, or whatever. Your first job doesn't have to be anything glamorous, but should then allow you to get to eventually wherever you want to be in your software career. Some of these bootcamps have skill/interview requirements, so that will help direct where your home study and practice should be.<p>Or, you could go to college and get a master degree in CS. Colleges then have on-campus-recruiting and some set of companies that will basically hire anyone who graduates from the university with a CS masters degree. It's the same idea as the bootcamp; go somewhere with the connections/infrastructure in place to help you get your foot into the industry.<p>Now, once you have your choice of companies to choose from, I tend to recommend startups. That's the one place where you have the opportunity to do things that you definitely shouldn't be doing given your experience level. But, since they have so few employees and so much to do, you're it. Then with those rapidly acquired skills, and with a year or two of relevant experience now on your resume, you can more easily get a cushier, more stable job at a larger company, if you wish.
As someone that tried making the switch to software development at your age two years ago, and haven't had any luck, I would treat the majority of advice you get here and anywhere else with a grain of salt. You will hear a lot of stuff about how you are not too old, and that it's okay to not have a CS degree. It's not that those things are wrong, but I think they are less true today than they were when many people here entered the field, at least in the Bay Area. If you are like me, you will find there are almost no jobs for jr/green developers, and you will find that when you do come across those jobs you won't fit the mental image most employers have of someone that would be appropriate fit for that position.<p>So my advice is keep learning (because that is the one thing about this field that is fun and exciting), but figure out how to do so in a way that is sustainable and makes you happy, and take care of your mental health.
Rebrand as a data scientist.<p>Data science is eating the world. Everyone wants data scientists.<p>You’re a microbiologist. It’s hugely credible that you’ve done some crazy data crunching for your science work. Spin that into an increasing interest in the pure data science.<p>Voila, you’re writing python for a living at the top of the market with a hugely valued differentiated skill set.
I learned html/design in 98 when I was 18'ish, but I always thought of it as a hobby - not a real career, till web apps and wordpress came along, still I would install wp sites, and do SEO for people but still worked for shit pay and shitty jobs, in 2011 at 31, I started learning to code using MVC frameworks (Ruby on Rails and Laravel specifically), I learned better coding skills, etc...and it's only the past 3-4 years that i've been taken seriously and started being sought after by companies and small businesses for freelance work.<p>Best advice is just build stuff, and always work on your portfolio and resume. The more you can showcase that you've accomplished the better.
I did the same thing when I was 28. I had some prior exposure to Java at university but that's about it. I took a year off from work to teach myself to become a software engineer. It takes hard work and you will doubt yourself while you're doing it. My advice is to get your fundamentals right, everything else depends on it. With fundamentals I mean, learn your algorithms, understand how a program actually runs by writing interpreters and compilers, understand the memory hierarchy, etc. After my year of self study I took a job that was not fully in line with my goals as a software engineer, but it gave me time to further develop myself and actually acquire some real experience in the field. I'm 33 now and working as an Embedded Software engineer, and in comparison with my peers I think I'm performing well, it all depends on your motivation and interest to put in the extra hours after work to 'make up for lost time'. I'm extremely happy with the choice I've made.
I don't think you are too old. Many of my coworkers had erratic, non-technical careers (construction, military, fireman, etc) until their 30s.<p>Just prove you can solve business problems using code.<p>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.<p>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.
Look around your lab. What problems do you have that software could solve? (It could be as simple as a spreadsheet.) Can <i>you</i> build that? If you can't, can you realistically learn until you can?<p>Then go build it. Congratulations, now you have experience.<p>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 <i>job</i> to do the next thing?<p>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 <i>are</i> 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.
I second "develop any software for your domain", with one addendum.<p>Do you use excel for anything at all? Whatever it is, you could start by building that.<p>- Do you put data into a spreadsheet and then email it to someone else? Make a web app where you put in the data using your account, and the someone else can view the data using your account.<p>- Do you have different spreadsheets with separate data than then gets aggregated/summarised manually into a single spreadsheet? That's a job for a computer program, not a person, and you can add that as a feature for your web application.<p>- Once you've done that, you have a website that can work with the new data, but some people will want it on spreadsheets, not on the website, so write a spreadsheet export/download feature.<p>- All your new data is in the website, but the old one is still in excel spreadsheets on your hard drive. Write an importer to read the spreadsheet data into your application.<p>- Is some of the data for your lab in a format that's also machine readable (barcode format?). Add to your app support for reading barcodes, either via phone cameras or laptop webcams: <a href="https://github.com/serratus/quaggaJS" rel="nofollow">https://github.com/serratus/quaggaJS</a><p>I could go on, but I guess you know your next step better than I would.<p>A recommendation is also that you do all your development at home, not on company time, and not using any company resources. A lot of profitable business are website implementations of existing spreadsheet workflows. In the past three years, I've worked on two such applications, three if you count a physical device UI where the prototype UI was developed on Excel + Visual Basic.
This was me 3 years ago! I was an academic cellular/genomics lab tech and now I write software.<p>Have you tried programming? I got my start with python courses on coursera and udacity, then moved on to solving problems on Project Euler. A few years after my first taste of python, I started going to meetups, then researched and entered a boot camp, graduated, and got my first job.<p>I went into the boot camp knowing that I liked programming, and that was important. I'd strongly recommend you see if you have that inclination as a first step.<p>Personal projects are great, but as a project manager told me in an information interview, a well chosen boot camp can provide you with structure and accelerated learning.<p>"too old to ever get a job in the field": I was only a few years younger than you when I started my boot camp. I don't think your age should dissuade you from trying. Your age = experience you have in a different domain, and in my experience, helps with the learning, application, and working process.
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."
The following 10 steps will not just get you into software development, but will get you your own startup:<p>1. identify something that you do on a computer that is repetitive and boring, and think hard about how to automate it;<p>2. learn any language/tool that's most accessible to you and build something that at least partially automates that task;<p>3. start using it yourself every day;<p>4. every time you run into an issue, don't work around it, take the time to improve it;<p>5. put it on the internet so others can use your tool;<p>6. get other people that you work with to try it out, listen to them;<p>7. talk about your new tool to everyone that you encounter or tangentially work with, at meetings, conferences, colleagues, etc;<p>8. go back to #4 a couple hundred times<p>9. Eventually, a potential paying customer will appear, do whatever it takes to get their business.<p>10. Go back to #4.
I transitioned into software development in my late 20's, and am very happy with the decision. I went back to school at ~27, and graduated just a few months short of 30.<p>34 is definitely <i>not</i> too old. While in school, I had classmates ranging in age from early 20s to late 40s. Everyone I graduated with is now employed and doing well. (Including those who started a decade later than either of us.)<p>Getting a 2nd Bachelor's degree in Computer Science worked for me. It only took 2 years, because I had a prior bachelor's degree, and it sounds like you'd be in the same situation.<p>Employers have generally been respectful of my prior experience as well (it was business focused, project management), so I don't think having worked in a different field is a bad thing at all.<p>Moreover, I work with plenty of software developers who started off in other scientific fields and made a transition to software more organically -- so it certainly can be done.<p>Ultimately, if you can pass programming interviews, you will be able to get a software dev job. It will be challenging, but you'll be happy you invested the time. Wishing you the best of luck!
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.<p>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.<p>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.
Write code for microbiology? Play with computational chemistry on GPUs?<p>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.<p>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.<p>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.
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.<p>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.<p>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.<p>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.
There are plenty of people who've worked 10 years in software (who are in their mid-30s) who've stagnated for the last 8 years. It's perfectly possible to compete even with people your own age within a year or so if you just tackle things to learn in a smart way. So don't let anyone tell you it's too late.
Where should you start? Ask yourself: How bad do I want to switch? Do you want to live the rest of your life feeling you missed out on something when it was not too late, or you think you'll be okay the way you are now.<p>I just switched from being in bioinformatics to software engineering being 30 year old. The problem isn't that you're getting old. The problem isn't that you lack experiences, either. I have none of those. On top of that, I'm just an international student, I have zero advantage compared to other applicants.<p>I think the most important problem/question is how bad you want to change your job/career? Do you come home everyday after work feeling like shit? Do you feel like you don't do enough work to deserve a break, but you feel like bored all the times at work? Do you feel like you hit a brick wall, not sure what is up for your future?<p>At one point in my life, I felt all of the above. I wanted to kill myself. I figured out if I wanted to stay alive, then no one else will help me besides myself. So after years of depression and worrying, I decided to instead of sleeping through my fears, I would do something to get myself out of that. Many things I did at that time turned out to resonate with people somehow.<p>One year and about ten days ago, one of my submissions got on the front page of HN. That changed my life forever. I wish you have the courage and grit to do the same for yourself, if you feel that way too. Doing anything, you don't know what will stick, but when you do enough, you will have a feel of what will.
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.<p>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.<p>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.<p>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 <i>idea</i> of software development typically become overwhelmed and try something else because they lack a sturdy base.
Since this is a huge field, you would be better off focusing first of all on one type of development. For example :<p>- Web Development<p>- Data Engineering<p>- Mobile Development<p>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.<p>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.<p>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.<p>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.<p>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.<p>Wish you all the best!
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.<p>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 :)<p>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 <a href="https://projecteuler.net/" rel="nofollow">https://projecteuler.net/</a> like you might enjoy playing with blocks or magnets as a kid<p>Have fun and enjoy the triumph, solving the problems can be very rewarding
> I feel I'm too old to ever get a job in the field.<p>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.<p>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.<p>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.
I do too. I am sysadmin. Maybe 20 years' sysadmin. I don't even think i make it as a sysadmin (e.g. i don't know which ip are 172.20.157.97/27 off hand...). I write some bash scripts (omg i actually test whats $0/1/2/3...ahahahaha)... Thats about it. I don't know how i still get by in this job! I mean surely every freshgrad knows all this stuff that i always google for!
On the other hand I've also seen the opposite. Like mail admins that ask me to add their antispam to my spf.. Who knows? I think its mostly down to luck. All this time I'm just surprised planes still fly. That is all..
I would say, if you don’t want to attend formal schooling, do a combination of:<p>Build some stuff yourself, whatever it might be. Website, automation of daily tasks, it doesn’t matter. Make something that works. Most people can’t complete a project, so if you can, you’re valuable.<p>Take some free online computer science courses. I really like the MIT intro to computer science for non-programmers. You’d be shocked how many people who work as developers can’t do basic stuff you would learn in even an intro course. If you have some theoretical formal knowledge and combine that with the ability to execute in the real world, you are rare and valuable.
I'll be honest-- there is a lot of stuff you have to learn. It's a high hill to climb.<p>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.<p>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.<p>The next step would be to find open source projects in this area. Study those, compile them, and eventually try to make contributions.<p>I think that's a good path. Good luck!
Go for it!!<p>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.<p>Here you can learn more about my path, might be helpful: <a href="https://rodrigohgpontes.github.io/" rel="nofollow">https://rodrigohgpontes.github.io/</a><p>I just focused on freeCodeCamp.org, which is a great resource. But I have the impression that taking a shot with <a href="https://lambdaschool.com/" rel="nofollow">https://lambdaschool.com/</a> might be more promising.
I moved to development from a career in maths teaching and trade unionism.<p>The advice given elsewhere to solve a problem in your current role is really important - but it might not need to be work related - a personal project that you have a clear vision for and users other than yourself will do.<p>Having stuff on github helped me with interviewers. I did not find, in the UK at least, that lack of a CS degree or development experience was a barrier - in fact, interviewers seemed interested in my story. However, where I live (the north) there is a developer shortage.
Congratulations! You've decided to go from being a specialist to being special.<p>The biggest advantage of your move is that as you dig into software development you will be equipped with two advantages:<p>Dual skills set plus a unified understanding of two different fields you might even be able to create new knowledge.<p>My advice would be to develop something in the field you already know, something that made your life more cumbersome but that technology could solve.<p>That way you will be using your intuition from a field you know to solve a specific problem while learning a new field.
I got my first internship as a developer in my late 20s, so like you didn't have a formal computer science education. There isn't any right way but this was my path.<p>You aren't too old! Keep in mind competing against 22 year olds for a job means you're also competing against many who have never held a real job yet, don't understand anything about professionalism, or have never had to wake up before 10AM on a daily basis, etc.<p>I honestly think the main concern is salary. You will almost certainly need to be flexible as you are starting from the bottom. You also may need to work to ensure that employers know you won't be too expensive to hire.<p>The first programming I did was Excel formulas and then SQL queries which I was fortunately able to learn how to do at work (I was in a non-technical role at a software product company), so this was more or less paid training. I then got into learning some basic Linux commands.<p>I was able to further dip my toes in by taking two programming classes online at a local state university, Intro to Programming with Java and Intro to Shell Scripting. I think these classes were about $1,000 each, which is a lot, but still a lot less than a bootcamp and didn't require me to quit my job. (I personally think Java is a great place to start programming but I don't know if this view is shared among most)<p>After that I finally had the courage to quit my job, attend a web dev focused bootcamp, and I started my first job about four months after that.
If you work in a lab in microbiology you already have the mindset for detail, dedication and testing that development requires.<p>Since development is problem solving, find something that you can solve in your field, a tool for other microbiologists maybe (web, app, content, tool), and build a prototype. Keep iterating on projects, and ship to the world in whatever tech you find fits your style. Or do something entirely new in a field you want to work in, I prefer gaming, promotions, household management and more, but find one that you will enjoy.<p>Having a project to work on will propel you through all the walls, from design to develop to ship to maintenance, the full cycle. The projects might be subpar initially as with anything newly learned, but they will be very empowering because you will hit some shots on the fairway and green even if you spent some time in the rough and sandtraps. I still love the feeling of solving problems and shipping games/apps that people play or use, almost a drug.<p>Don't worry about age or your field, you are too old when you are dead, and you clearly are alive with motivation to want to make a move.<p>A great coder who shipped solid products and fun stuff that I worked with was an agriculture major and worked on farms initially.
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.
The first thing I would say is don't let your age stop you.<p>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.<p>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.<p>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.
Definitely not too old, Dev manager here. First step, study some programming courses using video where you build full stack projects. F.eg. meteor JS by Stephen grider on Udemy.com or the one by Andrew Mead (possibly better). Take both courses because you get more training on one framework before learning other stuff. Why meteor js? Because you can focus at the one language everyone needs in web development; JavaScript. Nobody can escape learning it given that it rules the web. Also you don't want to learn multiple languages as a beginner, because it makes your learning curve much harder. Then build something, for real and release it. The smallest thing you can imagine that would improve somebody's life just a tad and put it up online. Then continue extending it with more features, improve what you already built, and release at least weekly. Second, you lack a CS degree. BUT there is tons of people with CS degree that write crappy unmaintainable low quality code. Lucky for you I say, because with some effort you can use this widely spread quality disaster in the field to outshine many of those with fancy CS degrees. Most juniors with CS degrees I meet doesn't have a clue on how to write high quality maintainable code. So the next step would be to focus on that. How? Order these books, read them, take notes and practice the concepts: Clean code, Pragmatic programmer, Code complete. Second practice unit testing and although it's a bit hard when you begin writing them, just keep at it. Almost everyone I interview for software engineer positions seriously lack understanding of quality practices such as: clean code, defensive programming, unit testing etc. Since quality problems cost me millions - I would pick a junior without a CS degree but that has competence in those quality practices over an intermediate/senior lacking those skills (big majority I interview). Analysis and design is also important, but you can read up on those subjects as you move forward. To conclude; just learn the basics, build stuff and release often. Then remember this is an engineering discipline, it's not a business where crappy code belongs (sadly the business is full of it). Excel at quality practices and you will definitely raise a lot of interest from interviewers. This advice is the same I would give any newly baked CS graduate. Why? Because crappy programmers cost us more support, bug fixing, slows down development and so forth. If you decide not to be part of this ongoing software quality disaster, you can quite quickly become a very interesting candidate.
One thing you might look into is bioinformatics, which is essentially CS + Genetics + Stats, and would let you leverage your bio background. There are basically two halves to bioinformatics: data science and tools development. The developers primarily write the tools, and the data scientists use them for their research and publications. One huge advantage is that pretty much all the major software used is publicly funded and open source. You can contribute without even having a job. That's actually how I got my first job in bioinformatics, by contributing to scikit-bio. This gives you a portfolio and mentoring in exchange for labor. Also, since academia can't afford competitive software engineer salaries, they're always hurting for good developers which can make it a great way to get started. Just be sure to get involved with a lab that has good engineering practices. That might be difficult to gauge, so ask someone to help you audit the lab's work if you're not sure.
I switched to software development from a related IT field (ops) when I was a little older than you are now.<p>In my case I had existing knowledge of the basics and had programming experience (but not as my primary job role, nor in a team).<p>Here is what I can suggest: if you can at all leverage your existing domain experience it will serve you well. Try to figure out whether your employer can place you in a role where you can contribute in some way using your existing skill set while you further your software development skills.<p>Having taken some computer science classes, read programming books, and having programmed off and on in small things for many years was helpful to me, but I can't overstate how much that was all eclipsed by raw experience doing the job day in, day out. I quickly realized that there is simply no replacement for hands on programming experience, and having a team around to help fill my knowledge gaps was invaluable.
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”<p>You may compare yourself a lot to peers who did not do career changes.<p>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?”<p>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.<p>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.<p>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?
After a career as hockey trainer and dentist assistant, my sister switched to a career as software tester, received some pretty intensive training for that, and is now developing herself towards business analyst, though she's also eager to move towards development.<p>A friend quit his PhD into medical psychology and entered a training program for developers where he got exposed to PHP, C#, Java, and maybe another language. He got into PHP development at a startup, and after a poor experience with some lead developers, he's now their lead developer. Some of his co-workers are superficially better developers, but they're cowboys who quickly deliver untested, hard to maintain code, whereas my friend works slower but more thoroughly.<p>Either way, getting into a program where you can learn how to do it right, seems to be an important step.
I was 34 when I switched from historical musicology to professional services. It can be done! All the advice in here is great. Software skews towards being merit and results driven (at least to getting hired)... the first step is way less difficult than a lot of other careers.
The most fundamental things in learning to make software:<p>1. Alternate writing programs with classwork or book-learning. Back and forth.<p>2. Learn a programming language that a friend knows, so you have a place to get on-the-spot help. Ideally, somebody sitting next to you.<p>3. Have a computer available. Almost any home computer will do, no need for something expensive. There's plenty of free software you can download, free tutorials, free books...<p>4. There are cheap classes at some nearby community college or something like that. Finding the time is harder than paying for them.<p>5. The most important first courses are about a particular programming language, like "Python Programming 101".<p>6. The most important second courses are probably "Algorithms and Data Structures" and "Computer Architecture".
You don't say how much you already know about software. I'll assume you know little or nothing. Advice for an already proficient programmer would be different.<p>Your bio background will definitely count for something at biotech companies, and they hire plenty of software developers. But you need to add some sort of credible training or experience in software. I know there are community colleges offering two-year programs; that would probably be enough. Then go looking for an entry-level software development position at some bio-focused tech company. Someone who knows both bio and software will be a very attractive candidate.
Step zero should be to see if you actually <i>enjoy</i> software development. It would suck to switch careers and find out that it's not a good fit for you.<p>I would suggest starting with Processing. It's a very simple programming language with very easy-to-use tools which was <i>made specifically</i> for learning by non-programmers. Just go through the video tutorials at <a href="https://hello.processing.org/" rel="nofollow">https://hello.processing.org/</a> or at Khan Academy.<p>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.
I'm looking for someone with lab experience to contribute to some open source software, I used to teach web-application development. Would like to trade experience, my HN handle at gmail.com
As a chemist who did the same thing a few years later and you’re doing it now, my primary advice is that whatever you choose to do make a medium range plan of a few months. And then follow that plan rigorously without spending time reconsidering it along the way. Distraction is your biggest enemy. At the end of few months, assess how things are going and make a new medium term plan.<p>If it’s any encouragement, I started cold with iOS at age 40. I knew nothing but a little bit of C.<p>If you learn the program, there will be people who need your skills.
I started as a programmer at 30.<p>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.<p>How to get started? Pick up some classes? Pluralsight, udemy, etc? College classes?<p>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.<p>Leverage your experience - programmers make stuff for... businesses. You have experience. Connect the two.
There are some amazing bootcamps out there - they'll cost you but they can get you to a more confident state - which is of course as in most professions only the start. Yes, you could gather all that's needed free from the internet but a bootcamp's value is that you force yourself to a long streak of full-day practice, you get proper feedback on your work and progress and you get a well structured introductory path into this vast field.
Where should I start as a 24 year old switching away from software?<p>All my friends that studied stuff I thought was silly are getting married and I’m stuck in a cube farm full of men.
What kind of lab do you work in? Is there any opportunity to automate some testing? Scripts for data processing/graphing? (see python with matplotlib) Create some kind of interface or data logger for something? Any possible use for an Arduino-based project? Labs are often a good place to write some custom software.
You're not too old! I really like Eloquent JavaScript as an introduction, it's free, you just need your browser to do the coding parts and it's extremely readable. From there I'd try to figure out what sorts of things you want to build and then grab those skills and running for it. Best of luck!
Is there anyone that's a software engineer in your workplace? If so befriend them and start learning about the problems they solve. Then try to implement solutions on your own and soon assist them. If not, research other similar companies and find software engineers there via LinkedIn, and do the same.
I started here back in time and helped to became a pro quickly.<p><a href="https://www.railstutorial.org/book" rel="nofollow">https://www.railstutorial.org/book</a><p>If you would like to focus on frontend dev, this is a great place to start also:<p><a href="https://yoember.com" rel="nofollow">https://yoember.com</a>
My recommendations: <a href="https://www.level12.io/blog/advice-to-aspiring-developers/" rel="nofollow">https://www.level12.io/blog/advice-to-aspiring-developers/</a>
If you work in an organization that has an I.T. department, go ask them about some persistent problems they're dealing with. I work in healthcare I.T., and I could give you a dozen ideas in 10 minutes.
I switched to full time software development when I was 35.<p>I started by making websites that were useful to me in my previous field. When I got good enough at it, I quit that job.<p>That strategy worked out really well.
Software engineering is a career that still doesn’t have a workforce large enough to keep up with demand. I don’t see 34 as very old at all. There are several routes you can take and I believe they will depend on what you are interested in.<p>If you don’t have a requirement for a high salary I suggest taking a look at the YC companies that are hiring by clicking “jobs” at the top of this page. See what specific engineering skills are in demand and then start to play around with them. Find what seems the most interesting to you.<p>It wouldn’t be a bad idea to work for a company that hires software engineers in a field where microbiology would be a big time bonus.
It seems like most people in your situation would go through a school/program for the reconversion. The most popular ones seems to be freeCodeCamp and Lambda School.
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
It's never too late...consider getting another university degree. Having previous experience like yourself is always an interesting story to tell employers.
One piece of advice that may not have been shared, yet: invest in a membership in the ACM (Association for Computing Machinery). You’ll be able to connect with other people through there, if you’re into networking. You’ll be able to show on your resume that you are serious about software. You’ll be able to make use of their job listings and conferences. And best of all, you’ll be able to use Safari Books online.<p>That last bit would probably make the membership pay for itself, since you are going to need to do a lot of reading and studying.
<a href="https://lambdaschool.com/" rel="nofollow">https://lambdaschool.com/</a> - Lambda School is a 9 month, immersive program that gives you the tools and training you need to launch your new career—from the comfort of your own home.
You say you lack experience but you don't say what experience you do have. Do you lack experience compared to a 35 year old software developer, or compared to a 21 year old computer science graduate? It will take you years to catch up if you're starting from zero. Don't think about it as a career change. Think about it as a new hobby. If you think you're good at it one day, then try to find a job where you need it.
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.