[HN Gopher] Ask HN: Starting a career as a programmer in my mid-40s
       ___________________________________________________________________
        
       Ask HN: Starting a career as a programmer in my mid-40s
        
       I'm fascinated by what I read in HN everyday. I want to start my
       career in IT. I'm now 44 though, and trained as a mechanical
       engineer in my career and spent the last 20 years in business
       (finance, strategy and operations).  I'm looking for wisdom and
       pointers from the community here.  How can I go about it? I have
       access to Coursera/EdX and around 1.5 years to focus full-time on
       retraining. Any advice would be appreciated.
        
       Author : 5F7bGnd6fWJ66xN
       Score  : 98 points
       Date   : 2021-11-07 16:39 UTC (6 hours ago)
        
       | pgrewal wrote:
       | firs, congrats on a great decision to learn programming. i am a
       | computer science engineer and using udemy for the new languages
       | that I am learning at 41. check out a few initial lessons on
       | different topics to understand the landscape.
        
       | ilaksh wrote:
       | Just a word of caution about training. Many courses will really
       | hold your hand and feed you the next step. I don't believe that
       | prepares you for real world programming or problem solving. Not
       | saying you don't want to take advantage of courses to nail down
       | core understanding, but it will not be at all sufficient.
       | 
       | One of the first steps is to really learn how to use Google and
       | the websites that come up such as documentation to search for and
       | leverage information and tools to solve problems. This is a
       | completely different way of working from many jobs such as
       | finance, management, or perhaps even mechanical engineering 20
       | years ago. Where you might have a set of learned tools or
       | approaches that you keep applying over and over.
       | 
       | One example is this. If you pick a Python course from a few years
       | ago, it might recommend a certain syntax or library that makes it
       | harder for you to achieve a task down the line than it would be
       | if you used a feature that had been invented within the last few
       | months.
       | 
       | It is really critical to have the mindset of accepting Google and
       | online documentation or articles as your friend and ally and not
       | some kind of weakness when you consult it.
       | 
       | But to go back to the first part, you will want to find projects
       | you can be relatively passionate about at least for a short time.
       | Because programming is about being persistent and nailing down a
       | lot of details. And you will need that level of interest to keep
       | hammering at a problem. Also you need to practice approaching
       | problems from scratch without knowing a preset approach. Rather
       | you do the research as I suggested, try different things related
       | to your specific problem, and really have to evaluate approaches
       | based on experimentation rather than a pre-learned approach.
       | 
       | Also you will have to practice interacting with users because
       | requirements are the hardest and most important part of
       | programming. There are two main traps: not listening to users
       | carefully, or listening to them too carefully. Often programmers
       | will dismiss feature requests because they seem too difficult,
       | but sometimes these are the real value add for the business and
       | can be achieved by leveraging existing tools and libraries. The
       | other opposite problem which is very tricky is that users are
       | often quite explicit in what they ask for, and those requests
       | often completely misjudge the business requirements or
       | inadvertently misrepresent them because they don't understand the
       | technology. The trick is not to just take what they say, but
       | actually understand the job they are trying to do, and use the
       | feature requests as hints, but with a grain of salt. It's hard to
       | do that and simultaneously really listen to what they say,
       | because they can throw in quite critical information that needs
       | to be interpreted properly in the midst of a lot of nonsense.
        
       | p0d wrote:
       | Make something that addresses a problem you know about based on
       | your own experience.
       | 
       | I am 50. I made something which solved a problem in my workplace
       | 15 years ago. It still makes money for me.
       | 
       | My programming skills at the time were rubbish. Copy, paste,
       | tweak. No reason why you can't do the same.
       | 
       | View your journey as fumbling through learning a foreign
       | language. Rather than joining a book group full of knob-heads who
       | like to make other people feel inferior with their better way of
       | doing things.
        
       | nixlim wrote:
       | So, I switched my career to software development at the age of
       | 40. Fairly simple path for this in the UK - spent 3 months at a
       | bootcamp (Makers) and then I got hired 6 days after and been
       | working as a software engineer now for 3 years.
       | 
       | So, I would recommend Flatiron or something similar. Self study
       | will not teach you how to work in an industry - a proper bootcamp
       | will.
       | 
       | Just my two cents, your milage may vary
        
       | adamredwoods wrote:
       | I did it (mid-40s, married, with one child), but I did have some
       | past IT experience. I have seen others do it, though, with almost
       | no IT experience.
       | 
       | I took an in-person course at General Assembly in 2017. The group
       | support with the immersive environment was exactly what I needed
       | to find the confidence and excitement to carry this career
       | transition through to fruition. I spent many 12-hour days coding
       | non-stop. Personally, I don't know if I could have done this on
       | my own in a non-interactive environment. I still keep in contact
       | with some of the folks I graduated with.
       | 
       | If in-person is not an option, make sure you find a way to have
       | one-on-one interactions and peer reviews. The communication of
       | your work to others is key.
        
       | jdavis703 wrote:
       | Preferably instead of MOOCs you'd take a course at a bootcamp
       | that places you at an internship or gives you a real world coding
       | project. In the best case you're going to be judged against new
       | grads who've already had 6-9 months of cumulative internship
       | experiences doing real world coding. In the worst case you're
       | being judged against other coders with 20 years experience.
        
       | TrackerFF wrote:
       | HK is heavily geared towards FAANG companies, or the startup
       | scene. Truth is, there's a vast, vast world beyond those that
       | need programmers - and if you just want a "normal" job where you
       | get to write software, there are tons of those. See the other
       | comments here for more specific roadmaps.
        
       | vishnumohandas wrote:
       | Build a tool that you want to use. Could be a TODO or note taking
       | app, alarm clock, a tool that scrapes your favorite site,
       | anything. But find something that you are going to enjoy building
       | and using.
       | 
       | Then understand the technology stack you will need to build it.
       | Then learn about that stack from Coursera/EdX. Finally build that
       | tool and reap your fruits. :)
        
         | ianai wrote:
         | But what about marketing? It's ok to build a product but if you
         | want money you've got to sell.
        
           | vishnumohandas wrote:
           | The way I understood it, OP just wants to learn programming.
           | I was suggesting "build an app you want" as means to an end.
        
       | h2odragon wrote:
       | You might find building a 3d printer or CNC system a natural
       | route into software; tweak the firmware on the open options for
       | those.
       | 
       | If you want to get to throwing fun things around as fast as
       | possible look at game modding or creating your own games with
       | some of the scriptable game engines. gentler intdroduction with
       | quicker rewards.
       | 
       | Just a couple ideas that popped up first. What _kind_ of
       | programming are you looking to do? do you get excited by the
       | possibility of squeezing a few more bits out of noise than
       | current data compression algorithms can? Or do you want to make
       | the perfect digital emulation of a furry dolphin avatar? There 's
       | shared knowledge there but further indication of your interests
       | can help.
        
       | dataminded wrote:
       | I would start with data jobs. Your existing skill set is already
       | extremely valuable and a quick dip into Python and SQL is
       | sufficient to qualify you for analytics engineering jobs. Once
       | you are in, it won't be hard to migrate into data engineering
       | jobs.
        
       | globnomulous wrote:
       | Late 30s here. I got started -- with no background in science,
       | stem, or programming -- in my early 30s. I'm an SDE at a FAANG
       | company now and love every minute of work. The six-month bootcamp
       | I attended was disappointing, but it got the job done. Then
       | followed several years of getting my bearings, learning, working
       | for a guy I didn't like, and studying quite a lot on my own. I
       | can tell I'm still a beginner, but I'm making progress and am
       | happy about the change.
       | 
       | Take classes. Work on coding problems. Read technical papers and
       | books that might be just beyond your reach. But as many other
       | have said, yeah, until you decide what "IT" means for you, I'm
       | not sure what advice to give.
        
       | giantg2 wrote:
       | Given your business background, maybe look at getting into
       | analytics and reporting. Usually these areas have some low code
       | options where you can do a lot with just some SQL knowledge.
       | Knowledge of the business can be helpful here.
        
       | qbasic_forever wrote:
       | Make friends in the industry or working at companies in roles
       | that you want to join. You will have to tap these connections to
       | get interviews and consideration for jobs, once you have some
       | education to put on your resume. The industry is not easy to jump
       | into completely cold unless you are a 20 something coming out of
       | college with a bachelors in CS or similar. It's not impossible to
       | get a job, but it's much more difficult to get that initial foot
       | in the door and past the huge machinery of HR resume keyword and
       | experience scanning.
        
         | flower1528 wrote:
         | This is what I am currently experiencing as a non-minority non-
         | white candidate.
        
       | computerdork wrote:
       | In my humble opinion, and also having helped lots of friends both
       | in and out of tech, one of the best ways to learn is to find a
       | couple of really good books on programming and read them cover to
       | cover (got this idea myself from an article on learning
       | programming). One thing is you need to find books that are
       | _tutorials_ and not references (as a mechanical engineer, you
       | probably have seen the difference yourself). A good place to
       | start is Python, and then possibly C programming - the reason is
       | for C requires you to learn a lot of the internals of a computer
       | - Hmm, you probably had to take a programming course back in
       | college (Fortran?) so you maybe able to pick up Python quickly.
       | Although, some people don 't like to just book learn and need a
       | course to keep them on track.
       | 
       | ... if you want guided instruction (besides just online courses),
       | to do things on the cheap, you can also audit classes at your
       | local college - just find some key courses in Computer Science
       | and ask the professor if its okay to sit in. I did this for two
       | years for a second interest of mine, music-theory.
        
       | Tarucho wrote:
       | Programming is not so much a career but a sequence of
       | interrelated jobs leading somewhere.
       | 
       | So, go after the things that interest you, learn them well, and
       | try to manage your way into the related market with whatever you
       | have at your disposal. The computing market is pretty forgiving
       | with failed attempts, not so much with lack of motivation.
       | 
       | Play by the rules in the interview game. If you want to get into
       | somewhere and they do X at the interview, train and do X to the
       | best of your abilities even if it makes no sense.
       | 
       | And be approachable, make as much contacts as you can. This is a
       | contact-based market.
        
       | politician wrote:
       | You might consider taking a familiar spreadsheet and converting
       | it into a program in a language like Go. Use the free Essential
       | Go ebook as a guide to how to write the code, and your
       | spreadsheet as motivational context.
        
       | bfung wrote:
       | As a 40 year old who has been in software for last 20 years and
       | managed hardware+software product construction a few years, from
       | implementation to management, here's my advice given your
       | experiences and time constraints:
       | 
       | * Play to your strengths
       | 
       | Leverage your experiences and map them over to software. The only
       | real difference is that the QA and shipping process can be
       | updated hourly vs hardware which takes months at minimum, so
       | build perfection isn't as hard of a constraint.
       | 
       | Leverage your finance, strat, and operations knowledge. That's
       | basically the Eng. Manager's job (Director level/VP level?). Most
       | coders can't tell you the business value of their code/tasks -
       | that's a problem to bridge the value prop back to the business
       | side. Also most "Eng" think there's infinite resources, but don't
       | account for costs $$$ to use cloud services.
       | 
       | My advice: * learn the software construction process * DO NOT GO
       | INTO IMPLEMENTATION - unless you're super passionate about it,
       | there's no way to be proficient or good at it in 1.5 years -
       | college grads will lap you. CS grads by default have done it for
       | 4years and are still usually not that ready to switch from solo
       | academia into a team, corporate standard.
       | 
       | Hope that gives you a perspective to consider!
        
       | johnwheeler wrote:
       | If someone asked you the best way to become a good mechanical
       | engineer, I bet you'd tell them to start building something.
       | 
       | If they asked you what to build, you'd tell them to build
       | something that's useful. Better yet, build something _you_ would
       | use.
       | 
       | If they asked what resources to use and learn from, you'd tell
       | them whatever resources necessary for the task at hand. To focus
       | on the practical more than the theoretical, while filling in gaps
       | of time learning theory.
       | 
       | If they asked you what to do when something fails, you'd tell
       | them to build it again until they build it right.
       | 
       | And when they ask you what to do when they're done, you'd say:
       | "now go and build something else"
        
         | zsmi wrote:
         | > If someone asked you the best way to become a good mechanical
         | engineer, I bet you'd tell them to start building something.
         | 
         | Actually, I would ask them to be more specific.
         | 
         | And the more specific they can describe the goal the more
         | likely they are to achieve it. The field of mechanical
         | engineering is huge and this is the same for programming.
         | 
         | Is the op looking to make web pages, do FEM simulation (since
         | they're an ME), embedded programming for robotics, etc. etc.
         | 
         | Each one of those is going to have a different path.
        
       | itronitron wrote:
       | There is a lot of BS in tech and IT, even on a forum like HN, so
       | consider that half of what you read on HN is written by people
       | that are either delusional or just plain ignorant.
       | 
       | Think about _why_ you want to learn programming. For me it 's
       | because I like to make stuff and programming is a natural
       | extension of that, but other people have different motivations.
       | 
       | Not every programming job aligns with every person's interests in
       | the field, so as you build your knowledge it is as important for
       | you to understand what you enjoy as understanding various
       | technologies.
        
       | readonthegoapp wrote:
       | i would sign up for a cloud guru or similar. you pay like $40/mo
       | and they give you mostly good+ content, plus, importantly, fully-
       | functional AWS (or other) cloud environments to actually type
       | commands into without costing yourself a fortune.
       | 
       | i would study for and pass the AWS Developer certification as
       | quickly as you can/like. you still need supplementary materials
       | to pass the cert tests the first time, fyi.
       | 
       | at that point you're more than good enough to get hired and do
       | real work.
       | 
       | after that, continue to do more certifications, i'd probably go
       | with the devops cert next.
       | 
       | build a stupidly-small and simple app and put it on your github,
       | and make sure you do all the things you're supposed to do and not
       | do - like store your secrets in public. the mistake here is you
       | will think, "_This_ is really truly stupidly simple." -- but it
       | won't be, and you'll spend too long on it, etc. The point is to
       | actually go thru the whole dev cycle, complete it, put a bow on
       | it, and be able to talk about it to prospective employers.
       | 
       | complete that stupidly-small and simple app with docs, etc., then
       | move onto another.
       | 
       | to me, 'learning to program' is a bit misleading, because
       | learning a language is relatively simple - what gets complicated
       | is learning all the other stuff -- like git, which is impossible.
       | so you just gotta be comfortable with git, and an IDE, and
       | writing code, testing it, deploying it, the 'full development
       | lifecycle' (FDLC).
       | 
       | i would pick one language to focus on - and i'd argue that can be
       | whatever tech or type of business problem really interests you.
       | 
       | so if you want to help build the website for some cool high tech
       | company like flexport, then learn javascript/react.
       | 
       | if you want to do data science, then learn
       | python/pandas/anaconda/etc.
       | 
       | if you wanna do iOS apps, then learn Swift or Kotlin for Android,
       | with the corresponding adjacent/required tools/technologies.
       | 
       | being a generalist is worse than useless -- i would not advise
       | it.
       | 
       | 'devops' is a good place to start, imo, b/c it's literally half
       | dev and half infra, so you don't have to be really good at either
       | -- just dangerous.
       | 
       | same goes for tech support -- you can look for 'technical support
       | engineer' or 'support engineer' jobs and be employed within a
       | month (like, 4 weeks from today, even without more knowledge than
       | you already have) and start learning on the job while you do your
       | coding/learning in your spare time. this is a slower route to a
       | coding career, but it also provides you an easier way to slide
       | into dev - you'll know developers, you'll know the product,
       | you'll have relationships, you'll know every bug/feature/etc.,
       | you know how the entire support process works, etc.
       | 
       | good luck!
       | 
       | ...ps, this never happens, but i'd love to hear how it works out
       | for you - would prob have to be on a new thread b/c i think they
       | auto-close after a while.
        
       | gigatexal wrote:
       | First of all welcome!
       | 
       | I hope the comments here are helpful. We would love to have you
       | -- if I could speak for the world of software engineers at large
       | -- make the transition, your fellow engineers are here to help!
       | 
       | The Changelog did a podcast about Sean who learned in public. By
       | being humble and open to learning he bootstrapped his way into a
       | career. He mentions FreeCodeCamp and then did a paid one after
       | but your results may vary. Check out the conversation here:
       | https://changelog.com/news/P5Gg/visit (I've no affiliation with
       | The Changelog other than being a fan).
       | 
       | How do you like to learn? For me videos don't really work. I mean
       | they work to get the basics but I have to build something to
       | really get the knowledge in my skull and to keep it there.
       | 
       | There are a number of free resources via Youtube and Github like
       | this (https://github.com/ossu/computer-science) that just require
       | the investment of time. Consider a blog to log your learning over
       | time the feedback could be valuable.
       | 
       | I hope that helps. Find me on twitter @gigatexal and via email
       | alex at alexandarnarayan dot com
        
       | streetcat1 wrote:
       | I started programming at the age of 8, I am now 50.
       | 
       | The first thing to ask yourself is weather you can sit down and
       | consternate for 10-12 hours without talking to anyone.
       | 
       | Second you should practice (not unlike practicing for a marathon)
       | . Start easy and go up.
       | 
       | Third, try to become apprentice to some professional programmer,
       | and learn from him (even for free), try to help him with some
       | tasks.
        
         | eigenhombre wrote:
         | Programming for 40 years, professionally for more than half
         | that. I don't, as a rule, "concentrate for 10-12 hours without
         | talking to anyone." Nor do I see the best coding from people
         | who do that.
         | 
         | Most programming as I have experienced it is a mix of solitary
         | and social skills, and there is room in the profession for a
         | fairly wide range of weightings of the two of those.
         | 
         | The apprentice idea is interesting. I don't know anyone who has
         | done that formally with just a single teaching individual, but
         | the companies I've worked at definitely value senior developers
         | who can mentor and teach, so maybe the apprenticeship model is
         | actually there already, hiding in plain sight.
        
       | nvmletsdoit wrote:
       | I had a great colleague who started programming at ~35. And the
       | thing I noticed with him, which I strongly agree, is that you
       | should pick something you like and start a little project.
       | Nowdays is kinda impossible get stuck, StackOverflow + Youtube
       | pratically solves every problem you can go into while learning.
       | 
       | Basically if you really do have passion and conclude any little
       | project you started ( it counts lot of points in cv, sometimes
       | more than references...) I think you can get easily hired in low
       | time as a Junior programmer.
        
       | codegeek wrote:
       | Before the how, can you give us some thoughts on the Why ? Why
       | are you interested in doing this at age of 44 ? Money is probably
       | a factor but I am curious. You can of course do anything at any
       | age and 44 is really not that old to start a new career. But the
       | why is critical because you have spent all these years in a trade
       | and now willing to reboot so you have to be willing to give up a
       | lot and start from the bottom which may still be better than
       | where you are currently but we don't know.
        
       | pezzana wrote:
       | What in IT interests you? Examples might include "system
       | administration"; "penetration testing"; "backend software
       | development"; "machine learning" and so on.
       | 
       | If it's hard to answer that question, you might try going through
       | your HN history to re-read the stories you upvoted. What stands
       | out as a common thread?
       | 
       | I'd do this before trying to learn anything specific. Without a
       | clear goal, you can send yourself on a 1.5 year rabbit hole with
       | nothing to show for it in the end.
        
       | dt3ft wrote:
       | The field is huge, and if you take a wrong turn, you could waste
       | months.
       | 
       | What is your goal? Earn more? If so, then look for jobs in your
       | area and see what is "hot". The role you call "programmer" is
       | nowadays called "software engineer". Do a search for that, make a
       | note of requirements from every job you can find (top 50 jobs).
       | Google every common keyword and see if you can figure out which
       | programming language is "hot". You will also need to decide what
       | you want to do with that language: desktop, web (backend) or web
       | frontend (I'd recommend to stay clear from fullstack and low
       | level).
       | 
       | The road ahead is rough, but I'm sure you can achieve what you
       | want, if you ask the right questions before mindlessly diving in.
        
       | xupybd wrote:
       | Read Ultra learning by Scott Young.
       | 
       | It will help you plan out how to learn this in such a short time.
       | It will also help you learn on your own terms,
        
       | ronanyeah wrote:
       | Look into web3/blockchain/NFT technology, most of it has been
       | around less than 2 years so experience is less of a hard
       | requirement than in other fields of software engineering.
        
         | caymanjim wrote:
         | Gonna hard disagree on this one. Blockchain is a flash in the
         | pan niche tool. There are some legitimate uses for it, but most
         | of it is all style and no substance. It's way too narrow a
         | focus, with far more people playing around than there are jobs.
         | You'd pick up general software skills along the way, but there
         | are better ways to do that with a focus on more useful and
         | practical technologies.
        
           | flower1528 wrote:
           | Sure but who would hire a non-minority non-woman 40 year old
           | with no previous experience in the field?
        
           | ronanyeah wrote:
           | Web3 is like knowing HTML in 1995. Act accordingly.
        
             | faeyanpiraat wrote:
             | I don't see how is that a valid analogy. Html was useful in
             | itself, all this new crypto stuff just convolutes existing
             | solutions.
        
               | ronanyeah wrote:
               | There were plenty of people in 1995 who did not
               | understand the utility of HTML. That is the nature of
               | revolutionary technology.
        
               | faeyanpiraat wrote:
               | You mean some people understood html to be revolutionary
               | even back then.
               | 
               | If you are someone who knows crypto to be revolutionary,
               | would you be able to help me understand why is it so?
        
               | ronanyeah wrote:
               | I like this perspective:
               | https://twitter.com/cdixon/status/1440026949838069763
               | 
               | For example, predicting Airbnb or Patreon in the early
               | days of HTML/CSS/JS would have taken a lot of foresight
               | and vision.
        
         | [deleted]
        
         | flower1528 wrote:
         | Could I get more clues? How might someoone hire a 40 year old
         | for NFT/blockchain?
        
           | tpae wrote:
           | Solidity (language for Ethereum Smart Contracts) is
           | relatively easy to learn. There's also tons of free resources
           | in learning them (https://cryptozombies.io/). I would say
           | this would be one of the hottest languages of 2022.
        
             | flower1528 wrote:
             | Yes. This feels like 2007-level of hotness. Thank you.
        
             | ronanyeah wrote:
             | Yeah Solidity has many resources and is worth learning.
             | Solana is another smart contract platform which uses Rust,
             | and Rust is a fantastic language, though it is tough.
             | 
             | Both ecosystems use Node.js for scripting/tests/frontend so
             | that is going to be advantage to learn.
             | 
             | A good progression might be:                 - Modern JS /
             | Node.js       - Solidity / Ethers (https://docs.ethers.io/)
             | - Rust       - Solana / Anchor (https://project-
             | serum.github.io/anchor/getting-started/introduction.html)
        
       | squiffsquiff wrote:
       | I did this early 40's
       | 
       | Don't focus to much on certifications or qualifications. Do focus
       | on a portfolio. Find things that scratch your own itch to work on
       | and learn
        
         | flower1528 wrote:
         | Are you employed as an SWE? Web dev?
        
           | squiffsquiff wrote:
           | Platform engineering lead
        
       | brudgers wrote:
       | Who do you know?
       | 
       | Being outside the traditional pipeline makes it less likely the
       | traditional hiring processes will result in a job. Moreover, the
       | further your education is from the traditional pipelines, the
       | further the odds against the traditional hiring pipelines
       | resulting in a job.
       | 
       | If you are going to spend time preparing, social preparation is
       | probably at least as important as technical.
       | 
       | Perhaps more. Because the ceiling on benefits over a limited time
       | is much higher and your starting point in your forties has twenty
       | years adult experience over a fresh grad. While even if you're
       | technically 10x the average entry level programmer, you will
       | still be just another entry level programmer.
       | 
       | Or to put it another way, if you want a job, look for a job. Good
       | luck.
        
       | dorianmariefr wrote:
       | maybe try to automate what you find repetitive?
        
       | max002 wrote:
       | I will recommend: - safaribooksonline, - learn from
       | latest/greatest books and vids, - watch out on youtube tutorials
       | and free tutorials in general (as long as you see ads), there are
       | ppl who want just clicks and show a lot of bad practices. Use
       | reputable sources where you can. Its as well a bit different for
       | coding and for hacking/cracking.
       | 
       | I think 3 best books on development ive read are: - the pragmatic
       | programmer, - clean code - working with legacy code
       | 
       | My favourite on hacking and re is: - hacking the art of
       | exploitation
       | 
       | Ive been developing various software for last 20 years and now im
       | getting more into security as dev is simply not complicated and
       | exciting enough/any more. i did crack cd checks and shareware and
       | other stuff when i was a bit younger (im sure there are fans of
       | softice in here :D) and i still know how to disassemble software
       | and modify it.
       | 
       | So being a developer for so long helped me to take the hacking
       | and re stuff easier today, because in the end if i know how to
       | write software (even if its quick, im not telling you to learn
       | design patterns) then it lets me find entry points, break and
       | abuse it easier.
       | 
       | Get practical if you want hacking :)
       | 
       | 1. Hackthebox.com 2. Vulnhub 3. Search for crackme's if you want
       | to get more into reverse engineering
       | 
       | Im very strong introvert and self-learner so it took me some time
       | to understand importance of mentorship or just being in group of
       | ppl with similar learning targets. A smart advice and some tips
       | can speed up your learning process and save you months. Find a
       | group, join discord and ask a lot of questions.
       | 
       | Im teaching my 57 years old mom to code so no stress, its a
       | matter of decission and effort, im sure you can do it if you want
       | and especially if you have such background :)
       | 
       | Learn intensive cause then you'll get to your target faster!
       | 
       | Its nice to read that youre 'fascinated', me too. I must admit
       | that getting my first reverse shell and rooting 1st box gave me
       | amazing excitment and fulfillment :) now... hurry up, get yours
       | as well!
        
       | jmfldn wrote:
       | I got started in mid 30s from an arts background. 6 years on and
       | I'm a senior engineer at a major tech company mentoring others,
       | designing systems and helping lead a team. Best decision I ever
       | made to scratch the programming itch, not because of career
       | progress per se, but I just love programming. For me it's mainly
       | the intrinsic joy of it.
       | 
       | My advice is to get your hands dirty with some tutorials and a
       | project to confirm that you definitely have that intrinsic love
       | of programming and writing software. It's a hard career without
       | it but a great one with it.
       | 
       | Your experience and maturity should also be seen as a great
       | asset. What you might lack at the start in technical knowledge,
       | can be partially compensated for by this. Even as a junior I
       | found I was good at working on a project, knowing what the team
       | should focus on, talking to 'the business' and acting as a
       | bridge, taking ownership, showing initiative and being a self-
       | starter. These are things you're more likely to have with age and
       | they are definitely valued by good companies.
        
       | dave333 wrote:
       | With your technical background you are really no worse off than
       | most software people who have to learn the latest new
       | framework/language/stack since these change every 2-5 years. Some
       | tools last a long time such as Unix shell commands but I think I
       | have used 5 different change control packages over the years
       | (although git does seem to be the leader for a while).
        
         | [deleted]
        
       | nabilhat wrote:
       | > _trained as a mechanical engineer in my career and spent the
       | last 20 years in business (finance, strategy and operations)_
       | 
       | If you haven't developed an allergy to this background, and
       | you're interested in the business process side of IT, I'd
       | recommend building off of what you already know. Domain
       | experience is invaluable and far too rare in technical roles.
       | 
       | This has been my own path. I knew just enough about computers to
       | know that tools existed to eliminate tedium from my workday, so
       | that's where I started. I didn't have to step away from my career
       | at all, so it was very low risk if it didn't work out or I
       | discovered I hated it. It did work out and I discovered I enjoyed
       | the process. Importantly, I discovered that the grind of writing
       | actual software or doing standard IT work doesn't agree with me,
       | rather it's the problem identification and solving process. So,
       | now I'm straddling the fence between the IT person who does lots
       | of automation work, and the process improvement person who tries
       | to make the business run smoother and everyone's workdays better.
       | It's a rewarding and appreciated role, and one where age (also in
       | my 40's) is a real benefit.
        
       | Grustaf wrote:
       | Consider iOS development, if for no other reason than the amazing
       | and freely available CS193p from Stanford. I took that route from
       | 0 to FAANG in my 30s.
       | 
       | As others have said, focus on a portfolio. Start with a course
       | like C193p and then build a few good quality products.
        
       | Jugurtha wrote:
       | Short path:
       | 
       | - "Learn Python the Hard Way" by Zed Shaw. 52 exercises to teach
       | you just enough Python to be able to continue.
       | 
       | - Next, an _excellent_ course by Reddit 's co-founder, Steve
       | Huffman, CS253. It was discontinued from Udacity, but is
       | available on YouTube:
       | https://www.youtube.com/playlist?list=PLAwxTw4SYaPlLXUhUNt1w...
       | 
       | It will take you through the basics of the internet, HTTP,
       | browsers, requests, cookies, databases, caching, hasing,
       | passwords, by having you build a web application. Granted, it's
       | on Google App Engine, but still, most of the router syntax out
       | there is similar (webapp2 from web.py, similar to Flask, Tornado,
       | and others).
       | 
       | You will learn a lot, and you'll see the result right in your
       | browser by having a live web application. You can then take that
       | knowledge and develop tools for yourself and others and put them
       | online for all to access and use.
       | 
       | If you want to do it better and "leap-frog", read Brett Slatkin's
       | "Effective Python: 90 Specific Ways to Write Better Python". This
       | book will make you write code as if you had been coding for
       | years... But, that's only doing it "right", you need something to
       | do right in the first place: you've been in business, strategy,
       | and operations, and you've been trained in mechanical
       | engineering: I think you are in no shortage of ideas and things
       | to code, so have a it.
       | 
       | You're in an excellent position of having been at the
       | intersection of a bunch of cross pollinated fields, and you'll
       | have a new skill to bring them together and do wonders. All the
       | best!
        
         | ai_ia wrote:
         | I would like to plug my free interactive courses [1] on
         | fundamentals of computing and Python. It is designed for
         | beginners.
         | 
         | You can check them out without signing up and they are also
         | available as free online books. [2]
         | 
         | [1]:https://app.primerlabs.io
         | 
         | [2]: https://primerlabs.io/books
        
         | arisAlexis wrote:
         | But why Python? There are many more jobs for JS
        
           | lrvick wrote:
           | Python teaches you how to code. Modern JS teaches you how to
           | "npm install"
           | 
           | But really though Python syntax is simple and readable and I
           | find people that learn it first adapt to other languages very
           | easily.
        
           | scrose wrote:
           | Python is typically taught in 101 classes because it enforces
           | some good practices, is fairly quick to pick up, and if you
           | have a math/finance background, can more easily lead to some
           | quick and fun projects that can be bootstrapped in a simple
           | GUI in a couple days.
           | 
           | Disclaimer: I prefer Ruby and JS over Python, but the amount
           | of projects and roles I've seen lately that recommend or
           | require Python experience seems to be growing. Not sure if
           | that's just related to the field I've pivoted into which has
           | a stronger focus on data analysis/algorithms
        
           | cgh wrote:
           | JavaScript more or less limits you to front-end web
           | programming (I know there are exceptions but realistically
           | this is what most JS positions are after). Not great if this
           | person's internet is eg embedded, machine learning or, in
           | keeping with their experience, large enterprise systems.
        
         | Alex3917 wrote:
         | Good advice, but anyone doing this now should be using: "Learn
         | Python 3 the Hard Way." For whatever reason he renamed the
         | book.
         | 
         | edit: The Steve Huffman course is also how I learned. It's
         | absolutely fantastic.
        
           | Jugurtha wrote:
           | Yes. I was going to correct it, but I wanted to avoid the
           | conversation or the thread going into that direction.
        
         | farmin wrote:
         | I heard about udacity on the radio and by chance picked Intro
         | to python and then CS253. I still have a little Twitter app
         | running on GEE. Mind was blown. Great courses, shame CS253 has
         | not been kept and updated.
         | 
         | I particularly remember the story in the course of him having a
         | list of all his users usernames and passwords unhased on his
         | laptop and it was stolen. He said he was embarrassed and
         | emailed them all to let them know. Lesson was to hash
         | passwords. Cant remember if that was for reddit all some other
         | project he did.
        
           | Jugurtha wrote:
           | There was someone commenting on how it was sadly discontinued
           | here https://news.ycombinator.com/item?id=18568798 and I
           | commented on the proper link of what became a hard to find
           | course.
           | 
           | I still have access to it on Udacity when logged in:
           | https://classroom.udacity.com/courses/cs253
           | 
           | But it's hard to find.
        
         | rg111 wrote:
         | I personally found "Python Crash Course" by Eric Matthes to be
         | a much better and effective book.
        
         | pixelmonkey wrote:
         | That Steve Huffman course looks very nice for beginners to web
         | development. Also looks like a nice pairing with my blog post,
         | "Build a web app fast: Python, HTML & JavaScript resources".
         | 
         | https://amontalenti.com/2012/06/14/web-app
         | 
         | This is still my #1 blog post by readership, even years later.
         | (200,000+ readers.) It was originally published in 2012, but I
         | did several updates over the years, including a 2018 update for
         | Python 3 and "Modern" JavaScript (SPAs).
        
           | Alex3917 wrote:
           | I wrote a pretty similar blog post in 2013, based on my
           | experiences learning to code in 2012. It's shocking how
           | little has changed since then. Like probably there isn't a
           | lot of reason to learn Jinja2 at this point, but even jQuery
           | and Bootstrap are just as relevant as ever.
           | 
           | And Angular is actually good again, so my recommendations for
           | 2022 would likely be closer to my recommendations for 2012
           | than to my recommendations for 2017.
        
       | bbarn wrote:
       | I think as a mechanical engineer, your prospects are good. Many
       | places will look at any kind of engineering background as "good
       | enough" and then want to start talking about code or process or
       | whatever their interview is all about.
       | 
       | In my opinion as a 20 year software veteran, the skillset many
       | software engineers lack is having a bigger world-view of company
       | operations and why they are doing what they are doing. Some of
       | that is obviously on the company structures they've been exposed
       | to, but decent engineers with really good business sense go far,
       | fast.
       | 
       | As johnwheeler said in this comment section, just start building
       | something. I bet it comes to you pretty fast, and if you have an
       | engineering brain, you'll start seeing the pieces move in your
       | head just like any other system. I really don't think you need
       | "retraining" per se, just start applying your business sense and
       | engineering skillset to software. Consider even looking for
       | companies where both are required, like places that build
       | mechanical things controlled by software, and look for roles that
       | offer the potential for some cross training.
        
         | dan_quixote wrote:
         | > In my opinion as a 20 year software veteran, the skillset
         | many software engineers lack is having a bigger world-view of
         | company operations and why they are doing what they are doing.
         | Some of that is obviously on the company structures they've
         | been exposed to, but decent engineers with really good business
         | sense go far, fast.
         | 
         | As a former mechanical engineer, I came to say exactly this.
         | Engineers in the traditional realms (mechanical, electrical,
         | chemical, etc.) operate in the business domain all the time,
         | even the junior engineers. Conversely, software engineers are
         | usually isolated from the business domain until they reach the
         | most senior positions. This creates a serious skills gap when
         | the time comes for software engineers to make business
         | decisions.
        
       | sushsjsuauahab wrote:
       | String manipulation is the gateway drug to programming, as it
       | requires no dependencies and the sky is the limit for arbitrary
       | logical games.
       | 
       | Biggest challenge will be choosing a language and executing the
       | program!
        
       | dimgl wrote:
       | You want to start a career in IT or in software development?
       | Those are two very different tracks (and I can only give you
       | advice on the latter).
        
         | ianai wrote:
         | Seems going into IT may be more financially rewarding for
         | someone later in career. OP could probably more easily pivot to
         | being an application SME for something fintech or maybe mech-E
         | related than a SWE.
         | 
         | But I am curious myself too. I'm hitting 40 in a few years and
         | will have 10 solid years of IT at that point. Programmings
         | always been something I've dabbled in on the side. But I know
         | that market has ageism probably stronger than in IT.
        
           | joelbluminator wrote:
           | doesn't IT include SWE? like IT is everything tech related?
        
             | codingdave wrote:
             | IT doesn't have as much dev as it used to - the amount of
             | business functions that can be handled with affordable SaaS
             | products takes care of a ton of software needs for many
             | businesses. There certainly still are developers in larger
             | IT shops, but anymore you get more "Business Analysts", who
             | configure and maintain SaaS platforms, maybe with some
             | light scripting and coding, instead of a team of devs
             | writing code from scratch.
        
               | janstice wrote:
               | 'Functional Analyst' is the usual term if you're looking
               | for jobs in this space - heaps of jobs in
               | Salesforce/Dynamics/SAP/etc - surprisingly good pay in
               | this area, but not really the start-up life.
        
             | zippergz wrote:
             | Not in common usage within the US tech industry (by this I
             | mean technology-first companies, not just companies who
             | happen to have some developers). In those companies at
             | least, if you say you want to get into "IT" people are
             | going to think you mean tech support, system administration
             | (generally for internal systems), etc. I don't know any
             | professional software developer in one of these companies
             | who would say they are "in IT." (Yes, it's a huge industry
             | and I'm sure you can point out exceptions.)
        
           | flower1528 wrote:
           | What is an "application SME"?
        
       | oblak wrote:
       | I did it in my 30s. Totally doable for a determined person in
       | their 40s, engineer at that.
       | 
       | It pains me to see many friends and peers wasting their lives
       | with low pay dead end corporate jobs they clearly don't like. I
       | am glad you've chosen to reinvent yourself. Being an older person
       | among so many smart 20 something guys and girls sure keeps things
       | refreshing
       | 
       | Try web stuff, python, databases, 3d graphics, and the things
       | _you_ like.
       | 
       | Even though it wasn't my first language, I'd think python would
       | be a great way to play with something simple and powerful. If
       | you're smart, may as well skip those and go straight to low level
       | like Rust or something.
        
       | joelbluminator wrote:
       | If I were you I'd try to combine programming with what you're
       | already doing (finance/business). Like learn Python and how to
       | extract data or something, thats easily added to your current
       | knowledge. Then later you can learn some basic web development
       | and build nice dashboards. There are some jobs out there for
       | finance people who can program - That's what I'd go for if I were
       | you. It's a shame to let all your experience go to waste by
       | learning something like systems programming or android
       | development, don't do that I think. The "How" is really easy,
       | simply google/udemy/coursera/etc etc. But spend some time on
       | figuring out What first.
        
         | aurelianito wrote:
         | +1.
         | 
         | Your experience is synergic with programming. Use it to your
         | advantage. Learn a bit of python and begin solving little
         | problems for you. Do it for a while and you will know how to
         | program.
        
           | dcanelhas wrote:
           | Indeed. I started as a mechanical engineer, writing scripts
           | to solve recurring mechanical stress and thermal
           | calculations. Then i moved on to robotics, then autonomous
           | driving, now I'm making video games. Linear algebra, calculus
           | and code is a nice combo.
        
         | fakeacct211107 wrote:
         | Sound advice, but where do you find these hybrid jobs?
         | Especially when it comes to programming, companies seem to
         | evaluate you in one specific language/skill, and seem to have
         | zero interest in the rest of your background and experience.
        
           | joelbluminator wrote:
           | That's not always true. In a job board try playing with
           | keyword combinations like Python + Financial
           | Analyst/investment/trader etc etc. You'll see them. I was
           | once thinking of doing the transition the other way around
           | (from software development to market/financial analysis) so I
           | know the jobs are there. Also - use your network and talk to
           | your colleagues - someone must know someone who works in
           | finance but does some/a lot of programming.
           | 
           | Here are some examples from a quick glance: https://www.linke
           | din.com/jobs/view/2762895590/?alternateChan...
           | 
           | https://www.linkedin.com/jobs/view/2786689624/?eBP=JOB_SEARC.
           | ..
        
         | thwllms wrote:
         | Based on personal experience, I can't recommend this enough. My
         | original background is in civil and environmental engineering;
         | I discovered my love of programming after I'd been working as a
         | civil engineer for a little while, automating GIS tasks. After
         | that I fell deep down the rabbit hole and found a job as a
         | full-time software developer at age 30. Now I'm back in the
         | civil / environmental industry, but with several years of real
         | world software engineering experience. It's paying off in a big
         | way. I'm not the best programmer, and I'm not the best civil
         | engineer, but I have more experience in _both_ of those things
         | than anyone else I know. Gives me a big leg up in a pretty
         | niche area.
        
       | ch33zer wrote:
       | I don't have any specific advice, but just want to say good luck.
       | My mom just became a board certified psychiatrist at 60 after
       | going through all of med school and residency. Before that she
       | was a priest in the episcopal church. Making career changes late
       | in life is hard but doable. You can do it!
        
       | austincheney wrote:
       | See my quickest path to 6 figures:
       | https://news.ycombinator.com/item?id=29025003
        
         | faeyanpiraat wrote:
         | Not sure if that is a joke post or not.
        
           | austincheney wrote:
           | It doesn't matter as it applies the same either way.
        
       | lordnacho wrote:
       | My spouse is doing a CS Master's degree from a UK redbrick. Full
       | time it would take a year, and you can do it remote thanks to the
       | virus.
       | 
       | If you're already an engineer you'll probably be able to do it
       | somewhat easily.
       | 
       | As for getting a job, the market is hot right now, we'll see if
       | it still is in a year's time.
        
         | [deleted]
        
         | markvdb wrote:
         | A master's degree in one year? Did I misunderstand something?
        
           | david_allison wrote:
           | UK Masters courses are typically a year.
           | 
           | Fun fact: If you graduate from certain universities, you can
           | get one without further study. https://en.wikipedia.org/wiki/
           | Master_of_Arts_(Oxford,_Cambri...
        
           | lordnacho wrote:
           | No, it's normal in the UK. She already did one last year, so
           | this is verified. UK unis are also pretty desperate for
           | students lately. Go check it out.
        
       | softwaredoug wrote:
       | One shock of programming at job vs class-based learning is the
       | art of working in an existing codebase with many other coders and
       | stakeholders. You might like programming for fun, but might not
       | find it as fun to do it as a job.
       | 
       | This means things like
       | 
       | - reading and understanding an existing, complex codebase
       | 
       | - solving your problem in a way that doesn't harm existing
       | functionality
       | 
       | - refactoring old code to solve new problems or to be more
       | reliable
       | 
       | - common workflows using version control
       | 
       | - writing testable code that can evolve over the years
       | 
       | - negotiating technical scope with stakeholders
       | 
       | - navigating technical risk and technical debt
       | 
       | I think this stuff is teachable, but it's hard to give someone a
       | project where the existing code base must keep working (or else
       | the company goes under) but also here's 4 features to implement
       | in a given aggressive timeframe. Much of having a job coding is
       | about these kinds of decisions.
       | 
       | I say all this so you can decide whether this is what you want or
       | if you just like coding as a hobby.
        
         | spuz wrote:
         | For what it's worth, I love coding as a hobby, and I hate all
         | those aspects of coding as a job that you specified. However I
         | still love coding as a job because it lets me do all the fun
         | parts as well. Even if 75% of the time you are fighting with an
         | unstable test suite or trying to budget for time on a dozen
         | competing priorities that still leaves 25% of the time where
         | you are solving interesting problems and doing something
         | actually creative.
         | 
         | Don't let all these scary sounding challenges put you off. If
         | you are smart enough to learn how to code then you are smart
         | enough to learn how to do all the other boring things. And a
         | job where 25% of the time (hopefully it's more than that for
         | most programmers) you are being paid to do something you love
         | is a great job.
        
       | zz865 wrote:
       | Nowadays the IT world is so huge you have to narrow it down a
       | bit. People working in FANG in the Bay Area do very different
       | things to the helpdesk of your local school district. You should
       | narrow down what exactly you mean. Things like the former will be
       | very difficult to achieve, things like the latter should be easy.
        
       | pdx6 wrote:
       | I think as other people said, you'll want to decide what "IT" is.
       | If you want to fix end user PCs and run ethernet cables, that
       | stuff doesn't pay well and you should stick to ME.
       | 
       | If you want to do SRE or SWE, the easiest way is to sign up for a
       | bootcamp. All walks of life pivot in these programs and already
       | being an engineer will make it a cake walk. The community college
       | might have some programs too, but the boot camps tend to teach
       | more modern skills and do job placement since that's often part
       | of the program price.
       | 
       | I think most importantly is to decide what industry you want to
       | work in. If you want to stay in your previous industry, you'll
       | have a leg up since you already know finance, and crypto is hot
       | now so there's lots of new tech and money to be made.
       | 
       | I think 3D printing is the next wave, and if you are already an
       | ME, you can hit the ground running making robots that can print
       | houses, car parts, rockets, etc.
        
       | hackitup7 wrote:
       | I'd consider a coding bootcamp, the good ones give you a very
       | minimal brand, but given your business and engineering experience
       | my guess is that it's all you'd need to make the switch fairly
       | seamlessly. You may take a compensation hit.
       | 
       | There are an enormous number of opportunities for software
       | engineers right now, the market is hotter than I've ever seen it.
       | We desperately need people to be retrained, cross-trained, any
       | version of trained.
        
         | RNCTX wrote:
         | > You may take a compensation hit.
         | 
         | Does not align with...
         | 
         | > the market is hotter than I've ever seen it. We desperately
         | need people
         | 
         | Pick one.
         | 
         | If the software / web businesses aren't going to compete with
         | other engineering businesses, they're not going to compete. At
         | the end of the day it's pulling recent grads from the same
         | pools (math/eng).
        
           | sokoloff wrote:
           | Mid 40s Mech E switching to entry-level SWE may very take a
           | comp hit, even if the SWE field is indeed the hottest I've
           | ever seen it (including 1999).
        
         | flower1528 wrote:
         | Which verticals are not saturated yet? Web dev is almost
         | impossible to get in.
        
           | joelbluminator wrote:
           | I think all verticals are really hard for juniors; it's not
           | like everyone is looking for junior C devs...
        
           | himanshuy wrote:
           | Data engineering is full of opportunities.
        
       | gregjor wrote:
       | A friend and customer (I freelance doing programming and system
       | admin) already in his early 50s, with a career history in law and
       | business, asked me to mentor him so he could learn programming
       | and contribute to his own project. 18 months on he adds value to
       | the project and is programming above beginner/junior level. With
       | another year of practice he might have the skills to make a
       | career in programming, though that isn't his goal.
       | 
       | We started with relational databases and SQL, since that's core
       | to the application we're working on. He originally asked to get
       | involved to run _ad hoc_ reports. Then we moved on to web
       | development, front- and back-end. He struggled trying to piece
       | together all of the parts that go into making web sites, but I
       | focused on fundamentals so eventually it would all make sense.
       | 
       | I think this worked for my friend because he was able to jump in
       | to a working system that is still under heavy development, for a
       | business domain he understood, and the rest of the team agreed to
       | help him learn. That was pretty much how I got started in
       | programming 40 years ago.
       | 
       | It seems that very few companies are willing to train and develop
       | junior programmers, preferring the tech interview performance and
       | the illusion of hiring the top 5%. It wasn't always like this. If
       | you can find a project you can jump in to with patient
       | programmers who will help you learn that's a great path, but such
       | opportunities seem few and far between.
        
       | togaen wrote:
       | Before learning any specific language or framework, spend a bit
       | of time on theory of computation and programming language theory.
       | Doesn't have to be a lot, but it will make everything else much
       | clearer. All languages ultimately do the same thing, so it's
       | really helpful to understand what that "thing" actually is.
        
       | ensiferum wrote:
       | Do you have a training/learning curriculum ready?
       | 
       | You'll need to study the following.
       | 
       | * Computer science basics. The fundamental building blocks for
       | computation. The bread and butter of algorithms and data
       | structures. There's no way around this.
       | 
       | * You'll need to learn at least one or two programming languages
       | in order to create actual computer programs and their related
       | tooling.
       | 
       | * You'll need to learn at least one computational platform and
       | its APIs and tools and generally how to build software for it.
       | For example one of Windows, Linux, Android, Mac or web. Choose
       | one.
       | 
       | * You'll need learn how to apply software to solving problems in
       | any particular domain.
       | 
       | * You'll need to learn a ton a about the tools and practices of
       | the trade. Distributed computing, databases, embedded, debugging,
       | tools chains, design patterns, frameworks, APIs, libraries etc.
       | Not all are applicable. What you should focus on depends on what
       | what you want to work with and in which domain.
        
       | tmitchel2 wrote:
       | Good luck! Your mechanical engineering background will definitely
       | give you good foundation to work from. If you are if the
       | entrepreneurial ilk then definitely advise you to think about
       | problems you had over the past 20 years and to use those
       | connections too.
        
       ___________________________________________________________________
       (page generated 2021-11-07 23:01 UTC)