
Ask HN: What advice would you give someone who wants to become a programmer? - becomethrow
Recently i have had a number of friends and family members ask me how to get into programming as a profession.<p>I gave them a couple links to some online resources like coursera, learnpythonthehardway, and some mit opencourseware courses; but im not sure whether this really puts them on a path to programming as a profession.<p>So, i ask you HN, How would an non-fresh grad adult go about starting a career in programming without a degree in computer science?<p>Is a couple online courses and a twitter clone or so in your github profile all you need to get a real job these days? Do they need to pay thousands for some bootcamp to learn how to &#x27;hack the interview&#x27;? Open source contributions?  What is it that hiring managers are looking for in fresh programmers?<p>Thanks!
======
jstewartmobile
_How would an non-fresh grad adult go about starting a career in programming
without a degree in computer science?_

Reading and doing. I'll come back and add my reading list when my HN timeout
is up. SICP, the dragon book, and Hennessy's computer architecture book are a
good start. Others may have some great suggestions.

 _Is a couple online courses and a twitter clone or so in your github profile
all you need to get a real job these days?_

Depends on where you're located and how old you are. Cultures are so
incredibly different from place-to-place that a credit in one sector can be a
demerit in the other.

 _Do they need to pay thousands for some bootcamp to learn how to 'hack the
interview'?_

Probably not.

 _What is it that hiring managers are looking for in fresh programmers?_

Fresh, innocent young whores without fixed value systems or outside
obligations. If you start drawing lines in the sand for personal relationships
and making value judgments about the work being dong (Uber, Palantir, etc.),
you will lose a lot of value very quickly.

------
jason_slack
My advice: start small, write something simple. Really study the language you
choose and how to work with it properly. Once you understand it, you can
exploit it. Then, keep studying and work on larger projects.

Also, work on something that interests you. Don't get into programming just
because it seems cool. It really is, but love what you do. Life is to short
not to.

------
unprepare
I seem to notice about a 50-50 split on whether having stuff in your github
profile is worthwile, but when it comes to someone pursuing very junior roles,
i would imagine it cant hurt.

I'd be more interested to know what some hiring managers would like to see in
a github profile for a junior dev - are they looking for twitter clones as you
suggest? open source contributions? side projects? are they just looking for
proof that you have interest and passion for development? or are they looking
at the code to see how sophisticated it is, how it conforms to best practices
wrt commenting, etc.?

------
tboyd47
The advice I give everyone is to try it out first and see if you like it- it's
not for everyone.

The worst is to complete to some sort of software engineering career track,
without ever realizing you're not interested in programming. So you come out
knowing all sorts of minutiae about software and having all these great
opinions, but you can't solve FizzBuzz. Nearly every company in the country,
large and small, knows how to filter people like that. Don't do that.

~~~
becomethrow
What would you suggest to people who arent going to enjoy programming? Trades
like hvac/welding? would you recommend they get into the IT side? go back to
school?

i often have people near me who are struggling financially ask for advice on
how to get into an actual career - these are smart people who have fallen into
and out of various lower skilled jobs like restaurants, call centers,
secretarial roles, small auto repair shops, and the like. These are mostly
people in their late 20s or early 30s who have college degrees in something
less marketable (non-STEM).

Whats out there these days for intelligent people who are willing to work
hard, and how do we get these people to these jobs?

for the trades, apprenticeships have largely been outpaced by associates
degree programs and credentialism. IT roles are rife with credentialism, most
credentials taking 300$ plus for the exam alone without any training
materials. Going back to school takes a lot of money and real confidence that
youre sure what you want to pursue.

I keep seeing people say that during the industrial revolution people were
saying machines would take all our jobs, and that this time its the same
thing. If thats the case - where should all these people be moving?

What should the 25 year old waitress with a philosophy degree be doing in her
time off work to get into a real professional career that will allow her to
retire at 65?

Are we sure we have jobs for these people? Is all this displacement just
caused by the older generation being slower to retire because its less
affordable to retire after the housing crash? If so, how do we address that?

~~~
tboyd47
I'm not a career counselor but I do believe there's something out there for
everyone. Maybe the 25-year-old waitress is happy in her current job. Maybe
it's easy and fun for her, she lives in an exciting place, and she makes
enough to get by. Why should she worry about the next forty years down the
road if she's happy?

Things don't look good economically for a lot of people in America, and a lot
of people get treated unfairly for stupid reasons, but there's no easy
solution I'm afraid. You can't guarantee a job for everyone because not
everyone necessarily wants a job, or perhaps they may only want a certain kind
of job.

------
PascLeRasc
Don't do programming just for the sake of doing programming. Try to make
something you personally want, like a better-looking calendar app, or you want
to automate some appliance. You'll find out whether or not you actually enjoy
programming without feeling frustrated or like you're wasting time.

------
bjourne
There is a major difference between learning programming and learning how to
start a _career_ as a programmer. The skill sets needed are very different.

You can either become a good developer and get hired on merit. Or, you can
become an imposer who has great social (and bullshitting) skills and manage
your career that way. The second option is undoubtedly easier.

The reason I'm bringing that up is because for an adult, starting from
scratch, with no computer science degree, doing it yourself, you are _easily_
looking at four years of hard study 8h/day to become competent. I think almost
anyone can do it, but very few have enough time and stubbornness to pull it
through.

------
DrNuke
Suggest them a couple of recent college-level books in paper (no online
courses, no e-books), one introductory and one with a lot of exercises and
solutions. Python may be good choice a language because easier and more
generalist than others. They will find their way from that, if one.

------
baubrey91
you don't choose the programming life. The programming life chooses you

------
jlebrech
don't go into web.

try embedded or game development, the caveat to learning any code is that
someone will offer you money to do web.

~~~
becomethrow
really? i often see people warning others to stay away from game development,
as i often hear that it favors college grads and churns through they by
pushing the boundaries of burnout and high expectations.

I do think that its partially because game dev is probably one of the more fun
types of programming, and because of this the market has become flooded with
people wanting to develop games.

As for embedded, is that something that someone with little funds is capable
of doing on their own? are we talking about doing some arduino projects and
then getting a junior embedded dev role? or what does that path look like?

With games its pretty straightforward at least, a single person could
reasonably make a small game, and thats probably a reasonable basis on which
hiring decisions could be influenced, but im not sure what the path for an
embedded developer would be

Thanks for your input!

~~~
jlebrech
I'd learn VHDL or C, golang or rust.

I think something with an easy learning curve like web, gets harder before it
get's interesting.

A real language starts hard and stays that way.

and there's always fresh blood nipping at your heels in web, and you'll get
frustrated at frameworks and not being able to upgrade the latest or greatest.

if you design for embedded or a game (something indie) you can start a fresh
with new libraries and new outlook.

in web you'll encounter technical debt more quickly.

If you want to do web anyway, I suggest coding with other stuff in your spare
time.

~~~
becomethrow
I dont think web is the best way to go for most people either, its certainly
not what i would do, though it does seem easy on the surface, i suspect
getting a junior webdev role involves more than knowing how to write a header
and title in html and maybe a few css stylesheets.

What do you think about backend dev, or devops type roles? would you expect
them to start in frontend and move towards backend as they get experience, or
should they start out from scratch and jump into SQL and python/java/ruby?

Or would mobile development be the way to go? learn swift or java and jump
into creating some popular app clones in your github?

~~~
jlebrech
try ios or android, there's less cruft and actual code.

you won't have to context switch as much and you can focus on what you're
learning.

