

Ask HN: Need advice on Programming - shire

So right now in my life I work at a shitty job that pays $13hr and long hours in the freezer warehouse.<p>I&#x27;m 25 and I want something better for myself as far as money goes and the work is less stressful than standing for 10 hours a day and doesn&#x27;t pay well.<p>Is programming the way out? I like web development and I&#x27;ve practice JS and Python but not a professional.<p>Can programming set me free? 
Where do I go to get started and how long will it take to get a job working as I am right now.<p>What if I want to program from home is that possible?
======
vosper
I don't know if programming will set you free, but I can try to offer a bit of
advice (no guarantee that it's good advice :) )

Firstly, it's great that you've learned some Python and JS. Rather than trying
to learn two languages, I recommend you focus on JS, because I think you're
more likely to break into the industry as a front-end dev than a back-end one
(and, once you're good at JS, you can always use Node for back-end stuff if
you want to).

"Javascript: The Good Parts" is probably a good book to read.

Don't just learn JS. Try to learn HTML and CSS too. The better you can get at
this trio the easier it'll be for you to pick up some small jobs where people
need a jack-of-all-trades to help them with their site. If you don't have any
contacts, or don't live in a big tech area, then you should take a look at one
of the freelancing sites like odesk. You'll have to start off at the bottom,
and you'll be competing for bids against people who live in places with a much
lower cost of living, so you may not make much at first, but you'll get some
real world experience. If you can learn and persist you should be able to
build up your reputation and skills to increase your rate, or to switch into a
full-time role.

Hope this helps - good luck!

~~~
lukaslalinsky
I'd very strongly recommend against starting with freelancing jobs. You don't
have experience dealing with clients nor building software. Find a stable job
as a junior dev at some company and don't be afraid to ask questions. The
first year or two will get you some perspective about the industry and you
will gain some experience. After that, you can try freelancing or getting a
better job.

------
bcg1
It sure is possible.

When I got out of the army I had no degree, no professional experience, just
what I had taught myself and learned in a few classes that I had taken along
the way.

I went to work at a software sweatshop that had low pay and long hours but
after about a year I was able to get another position just based on that
experience... eventually I got a CS degree from an online school just to get
the HR people to shut up, but you don't need it, and frankly if you can teach
yourself effectively it is a waste of money.

I would recommend trying to get some small freelance gigs that you can easily
handle and do those in your off hours. I know you are working a lot already
but it is only for a short time. If those jobs work out and you can replace
some of your income, consider cutting back on the warehouse hours if you can,
and focus on landing a full time job or being a full time freelancer.

If you want a great learning experience, consider getting involved with an
open source project ... find one you like, get on the dev mailing list, tell
them what your skill level and goals are, and tell them that you want to be
involved. Unless the project is run by a bunch of assholes they'll have
something appropriate for you to contribute and will help you learn amazing
things.

Stay cool, stay humble, and you'll do great. And BTW read this if you haven't
already:
[http://catb.org/~esr/writings/taoup/](http://catb.org/~esr/writings/taoup/)

Good luck!

------
freedevbootcamp
Watch this video to give you a good idea of what it takes to be a Front end
developer now days.

[https://www.youtube.com/watch?v=zXqs6X0lzKI](https://www.youtube.com/watch?v=zXqs6X0lzKI)

Build tons of websites with just basic HTML/CSS then when you can drop code on
demand and build a website without looking everything up learn javascript
inside out like your life depends on it. Do not learn JQuery yet. Wait till
you are a guru at Javascript before moving on to frameworks. Yes you have to
learn the javascript frameworks. My suggestion would be to learn backbone.js ,
require.js, then when you get really good at the MVC give angular.js a shot.

This link will take you to a roadmap to learning javascript the proper way.

[http://javascriptissexy.com/how-to-learn-javascript-
properly...](http://javascriptissexy.com/how-to-learn-javascript-properly/)

------
readme
Yeah it is man. I did the same thing and I used to work in restaurants. It was
always a hobby and then it became a job. Yes, I even worked from home too.

I would actually recommend against working at home though. It's a catalyst for
laziness, loneliness, and fatness.

The world never did, and still does not, take place in your own home. It's out
there. Outside.

Key thing is you must be dedicated to what you're doing and not quit... You'll
find tons of instructions on the specifics but the key thing is to always find
time to code. I used to get home from work at 2-3AM. After that I would shower
and pound some coffee or red bull then code until dawn. That is the kind of
dedication you will need to break out of your routine.

Honestly it will be easy to find a job if you build some impressive projects
for your portfolio... Worry less about what they are and more about the
quality level and how they look.

~~~
shire
I guess I get lazy when it comes to programming I think to myself this will
take way to long to learn and quit.

~~~
readme
It does take a long time. If the only reason you want to do it, is money, then
you're going to have a difficult time.

If you love it, then you're good.

------
cmattoon
I've done this myself - I've been programming as a hobby since around 5th
grade, but never did anything serious with it. I'm now 27, and am in my 3rd
year at my first "professional" development job. My career before that was as
a Paramedic ($14/hr).

Some quick advice, in no particular order:

1\. Get on GitHub. Look at the source code for libraries/programs that you
like and use. This'll show you how other people do things. Look at the
"issues" tab and help fix some projects or add new features. Also, most places
use Git for version control. It can be a beast to wrap your head around at
first, but it's not that difficult once you start using it.

2\. Look on employment sites and see what kind of requirements they have. Do
you want to be a JavaScript developer? You'll probably want to know Angular,
Knockout, etc. Want to work as a Python developer? You'll probably need to be
familiar with Django framework. Then, there's all the other stuff for build
automation and testing - grunt, composer, bower, phing, nose, etc.

3\. Stay away from frameworks and IDE's while learning. Use a text editor, not
Dreamweaver, NetBeans or Eclipse. Notepad++, Sublime text, emacs and vim are
all common favorites. Learn the frameworks, but don't rely on them. It's easy
to gloss over the details and just use the framework "as-is", but you really
need to understand what's going on under the hood.

4\. Learn Linux, if you don't know it already. Most developers I know are
responsible for server administration stuff, too (to some degree anyway). Know
how to tail an error log, configure the webserver of your choice, create a
MySQL user, SSH to a machine, WGET a file, etc. DigitalOcean, Koding, and many
others offer you a very affordable linux box to play with ($5-$10/month or
less). (With virtual machines, you can screw up all you want, then just revert
to a snapshot)

5\. Learn how the internet works. This should go without saying, but it'll
keep you from banging your head off the wall when your AJAX application isn't
working because you didn't know CORS was a thing.

6\. Look into "fizzbuzz" tests. They're short, simple programs that an
employer may ask you to solve. These are good at weeding out people who know
how to rearrange framework functions, but don't know how to program.
[http://blog.codinghorror.com/why-cant-programmers-
program/](http://blog.codinghorror.com/why-cant-programmers-program/)

You don't have to be a pro to get paid. Apply to jobs at small to medium-sized
companies that don't have an HR department to throw away your degreeless
resume. Check craigslist, freelance sites, etc. Build a portfolio.

As far as working from home, I'm still waiting on that opportunity myself.
There are plenty of jobs out there that allow it (google is your friend), so
just apply and see what happens.

Good luck!

See also: [http://programming-
motherfucker.com/become.html](http://programming-motherfucker.com/become.html)

