
Ask HN: Need advice to change career at age 31? - russmik
Hello HN,<p>I am 31, and am working in a call centre. I do not like this job. Pay is very low. It is becoming very hard to continue in the same job as I never wanted to work in the call centre. Somehow I got into it. 
I always want to work on my ideas, start a business and help make world a better place. 
I want to learn programming so I can execute my ideas. I have never programmed anything. I don&#x27;t know anything about CS.<p>Is it right choice to start learning coding at age 31?<p>What should an ideal roadmap be for learning, executing ideas, and starting a business?
======
everyone
I switched from being an architect to a programmer at around 30. It really
worked for me, I definitely had an aptitude for programming.

Its also very easy to learn nowadays. You can learn on your own via things
like this..

[https://www.codecademy.com/learn/introduction-to-
javascript](https://www.codecademy.com/learn/introduction-to-javascript)

I think a good 1st step would be to do lots of tutorials like that in your
spare time. See if you have an affinity for it.

You should also think about what sort of stuff do you want to make.
Programming is just a means to an end. What do you want to do with it?
Websites? Mobile apps? I personally got into making games, which is a niche
area but after a lot of rumination I clearly decided thats the area I wanted
to work in.

....

As for the next steps.. If you have any ideas for any little apps (like stuff
you could use in your day to day life) you could build them in your spare
time. Start building up a portfolio of your own projects.

Once you have some examples of your work, you could start looking for a job,
theres a global shortage of good programmers atm, so in more pragmatic
companies, qualifications are not necessary. If thats not working out in your
area, then you could do some part-time or online courses to get some kind of
qualification.

I do recommend getting a job somewhere (or a few places) before starting your
own business. You will learn a lot about the software biz the 1st few years
all while getting paid for it. Even if the company is terrible you will learn
what _not_ do to.

Anyway imo the most important step is the 1st one. Learn how to code in your
spare time, mess around with it, see if you like it.

~~~
galfarragem
I'm also an architect switching to programming but I didn't finish the process
yet. Apparently disconected both subjects have a large common ground: creating
a _machine_ from small building blocks.

What I've found particularly difficult is to _let go_ the past because I like
Architecture and invested a lot on it. By the other hand, Architecture as a
job is terrible, and that was the trigger to adapt my career.

~~~
everyone
Cool! Yeah, I agree architecture often sucks in practice. I was not even a
good fit. I was way too engineer / pragmatically minded, and I have a good bit
of disdain for superficiality.

You might notice that you're much better than your programmer peers at actual
software architecture. Organising the software into some sort of structure or
hierarchy that _makes sense_.

Though after a while you might also realise that its better to avoid explicit
structure in your software, if you can. If you try and _really actually_
implement the fundamentals in your code all the time (tiny classes, tiny
methods, avoid coupling, avoid duplication) your work will be very pleasant.

------
mr__y
It's definitely not to late. You might consider web-development, because of
shorter time frame to get employable skills. As soon as you can actually start
working and making money your motivation will boost and of course working on
actual projects (instead of theoretical examples) gives you a lot of
opportunities to learn a lot and gain on-hand experience.

------
0x4f3759df
Since you are short on time it would be advantageous to use the most powerful
tools in a directed way. The best IDE is Visual Studio, its best web
development framework is ASP MVC Core (which you can later deploy to Linux
VMs) the fastest way to generate your database (for a newcomer) is probably EF
Core code-first, then you end up on the front-end, which css and javascript
Javascript is difficult because it comes with many choices, which
libraries/frameworks to use JQuery? Typescript? Angular? React? That's another
question.

Get Visual Studio, Test Checking in Code / Undoing code, create database
relationships, put data into database, get data out of database, learn MVC
routing, learn web dev.

Also get a mentor, just somebody on a chat that you can ping so you don't
grind away for days on something that takes 3 seconds.

~~~
w4tson
How many IDEs have you used? Off the top of my head I’ve been a Borland,
Jdeveloper, netbeans, eclipse, Xcode, Visual Studio.

None of these comes close JetBrains current offerings. They’re totally killing
it at the moment. Certainly for typed languages at any rate.

A lot of C# devs I know prefer Rider to VS which tells a story I think.

~~~
0x4f3759df
Eclipse, Jetbrains, XCode. Haven't used them in a while though.

------
vinayms
The most prudent way forward is to be the idea guy, even business developer,
and partner up with an engineer to start a business.

Programming is more than typing code. Its about design and architecture, and
these things take a lot of experience to get it right (for whatever right
means). Beyond that, it needs good amount of CS. Those of us who didn't study
CS at university had to pick it up on job, which was no doubt fun, but also
quite challenging. You need a lot of dedication to become good at CS (I am not
claiming I am) and devs with steady job sort of have an incentive to become
good. On the other hand, people who look at success of devs from outside
hoping to tread their path but possess little necessary background have no
idea how hard it is to become even reasonably good at it. I mean, surely one
can cobble together stuff with Ruby, Python etc that have libraries for all
possible tasks, but to sustain, improve and convert it into something
successful is a mighty difficult task. And with your ambition to "work on my
ideas, start a business and help make world a better place", you would need to
be an absolute genius to manage to pull that off.

Now, you might well be an absolute genius, but chances are you would get bored
going through the learning curve and experimenting. More than that, you would
get frustrated that the ideas keep growing in your head but you have a long
way to go before realizing them into reality. You would despair sooner or
later and it wouldn't be pretty or healthy. I know this because I have been
through this sort of a thing a few years back. While not a programming
complete novice like you, I did find myself needing to learn C# and .NET from
scratch in my early 30s after being a C++ dev all my life. It was just too
much work and felt like waste of time - I could be building working things
instead of writing toy programs. I gave up because, thankfully, after more
pondering, I realized I could manage with C++.

So, what I instead suggest is to work on ideas while still working at the call
center. Try imagining how the idea would work as a product. Iterate. Design it
functionally without bothering about the implementation details, which you can
discuss with the engineer you might partner with at a later point. Learn
enough about technology of your choice in a top down approach. Don't try to
become an engineer or learn it like an engineer, but become someone who can
understand what engineers speak and gain enough insight to be able to ask
further questions.

In other words, become (or stay) Pinkman instead of Mr White.

------
jazoom
Dude, I left working as a doctor this year (32yo) to be a programmer/web
developer. Based on what you say about your current job you really have
nothing to lose.

Please note that I learned programming etc. for many years while studying
medicine and working as a doctor. I'm not suggesting you to dump your job just
yet.

~~~
srednalfden
Wow, really? Why?! Medicine seems to have a way bigger upside?

~~~
jazoom
You can probably guess that it also has some downsides when you look at
suicide rates. ;-)

Anyway, I am working on my own startup businesses. I find it very fulfilling,
though in a different way to how I found medicine fulfilling.

I wouldn't have left medicine to work for someone else.

I took a large pay cut. I'd rather be more happy with less money than be less
happy with more money.

------
RikNieu
I did it at 32. Went from VFX to react and react native dev.

I started with HarvardX CS50, they teach you coding and coding concepts from
scratch. Highly recommended.

After that, do side projects, look for junior jobs and viola! You'll be
missing your free time in no time!

------
mabynogy
Yes do it. You can start now. Install and launch a text editor and learn how
to do a "hello world" in javascript.

~~~
ColinWright
I have Linux Ubuntu 14 - if I write a javascript program, what do I need to
install to be able to run it?

There's often a lot of schlepping about required to be able to get started in
writing and running the simplest of programs, and it would be useful to see it
documented for a range of languages.

Does such a resource exist? I've Googled it on Bing, and Bung it on Google,
and my search-fu is failing me.

~~~
shubb
Javascript runs in a Web browser or you could install node abd use that to run
it like a script.

You might wanna grab a book or udemy beginners course and systematicaly work
though it. Also if you find a good programmer discord they'll help you if
something from it is unclear...

~~~
ColinWright
Everything you say is true, but I think you, and so many others, are
underestimating just how much has to be done to get things running.

So. Many. Tiny. Steps.

A previous comment said:

> _Install and launch a text editor and learn how to do a "hello world" in
> javascript._

It's not that easy, and I've never yet found a truly simple, no knowledge
expected, step-by-step guide.

Yes, JS runs ins a web browser. How? If I fire up a text editor, what do I put
in it to write a "Hello World" program? Alternatively, how do I "install node
and use that to run it like a script"? What's "node"? What version do I want?
Where do I find it? How do I install it? How do I use it to run JS scripts?

So. Many. Tiny. Steps.

And some not so tiny.

You know this (and I know it too) but so often I see "advice" like this thrown
out at absolute beginners _and it really doesn 't help._

~~~
boyaka
Save it as an html file. Use html script tag to wrap your javascript.

~~~
ColinWright
So one would also have to learn some html markup and have a browser (which is
probably a given, I know), and then have to understand at least a little of
how the program outputs to the DOM, and how (or if) the output of the JS
interacts with the HTML that's already there.

I'm not saying any of this is a bad thing, it's just the way things are, but
to an absolutely beginner it can feel insurmountable. I've seen the despair on
beginners' faces when they've been shown yet another thing that has to be
done, and which they don't understand. Then another, then another.

So. Many. Tiny. Steps.

~~~
mabynogy
For that, my advice is to use something integrated like Pharo or Basic256.

~~~
ColinWright
See, and now our beginner has to learn what "Pharo" is, or "Basic256", and how
to use them.

It just feels like the rabbit hole has no bottom.

Seriously - what is "Pharo"? What is "Basic256"? What do they do for me? How
do I install them? How do I run/use/access them?

It just feels endless.

So. Many. Tiny. Steps.

 _Some searching tells me that these are completely different alternatives to
using Javascript. Now it 's unclear why our beginner would want to use these -
what advantages do they have over Javascript? Or Python? How will they get to
a point of being able to contribute to Open Source, or to having an app or
website others can use? What's the path?_

 _In a private communication someone has accused me of being deliberately
obstructive here, but I 'm just trying to raise awareness of the height of the
barrier to getting started, and how little real help there is out there. We,
as a community, should do better at helping people get started in programming,
people of all ages and levels of life experience._

~~~
mabynogy
You're negative. Are you depressed?

~~~
ColinWright
Not at all - I'm trying to point out that all the suggestions that technical
people toss out, thinking they're helping, have a huge amount of technical
tinkering underneath that most technical people just don't see. Then when I
point it out people think I'm being obstructive, or in your case, that I'm
just being negative because, you know, the only possible reason is because I
must be depressed.

I'm not, I'm trying as hard as I can to be genuinely constructive. What people
are currently doing superficially appears to be useful, but it's not, and I'm
trying to raise awareness of what people need to do to be genuinely helpful.

~~~
mabynogy
What I really think about people willing to do programming is that most of
them won't become programmers. People who are interested by programming just
program. I could say that for carpentry too.

But I think we should do more programmable tools (like excel) to help people
to deal with complexity.

