Hacker News new | ask | show | jobs
Ask HN: How do I get into programming?
13 points by Noel_V 4749 days ago
I'm thirty years old, I work in the fast food industry, I'm pretty good at HTML and CSS and can put together a pretty website. I'm learning PHP and Javascript slowly and for the past couple of years I've spent my every spare minute coding something. Yet, I haven't got any work experience in the industry and I want to be a programmer. How on earth do I break into the industry?

Responses would be appreciated

13 comments

If you don't have a formal CS education or working experience, you can still get a job by demonstrating competency with personal projects or open source contributions. Create some kind of website or tool or project that people can see use and get a feel for your abilities. Fix some bugs in open source projects and let people check out your Github profile.
What sort of working conditions are you looking for? Do you want a steady, corporate job, or is it working on programming that matters most? It might be possible for you to latch onto a startup. Look for cofounder dating meetups in your area. Lots of business people who don't know programming at all have ideas that need to be turned into software.

Another thing, and this is big... where do you live? The programming side of the IT industry is strongly concentrated in certain urban areas. If you don't live in a major city with a real software industry, you may need to move for opportunities. This doesn't mean you have to live in Silicon Valley, but you have to live somewhere that the jobs are - cities like Minneapolis, Denver, and St Louis all have substantial software industries.

What I love most about this industry is that its still open and accessible for anyone. In my experience (unless you go for an interview at google, or ibm or any big coorp) all you need is to have a great portfolio and just show what you've done. How do you get industry experience and "break in"? Well, just hop on github start contributing to projects that interest you, build one of your own project ideas, I'm sure you know people that would like to have a website, you can offer to build one really cheaply or even for free, just to get the experience. Once its online, you have another little spot for your portfolio.

As soon as you feel you have a couple really good examples send off your resume and your ready to go :)

Some really good things to know/have for getting a job in the industry:

1. Version Control (i.e. Git) - if you are really familiar with github and git merging, rebasing, commiting and working with other developers this is a huge plus. The great part is that its really easy to get involved on github and there are tons of resources for learning git.

2. Having good examples of your source code to show (again github)

3. Having completed projects / websites to show

wish you best of luck!

I guess, if you have a _great_ portfolio Google or IBM will contact you. ;)
One of my early jobs (as I was teaching myself to program) was at a large consulting firm. The job didn't require any sort of programming. Many of the business processes at the company revolved around manual processes and data-entry/manipulation in Excel. After a month, I recognized a process that could easily be completed (more thoroughly and efficiently) by a script. I spent the next few weeks after work learning how to manipulate Excel, scrape data from websites, and package Python scripts as standalone EXEs. I showed my work to one of my colleagues who showed it to others. A few more iterations of this process resulted in my colleagues lining up to see what could be automated out of their processes. My job title hadn't changed, but I was then working full-time as a programmer.

After a while though, when I felt I was no longer learning as much as I'd want to -- I decided to look for a new job in the software industry. With my experience writing code at the consulting firm, I was able to find a decent job at a software company.

tldr: Programming is valuable for many jobs (not just software shops) and it is often easier to get your foot in the door and spend your days writing programs there.

I started off doing SCADA work. The bar for skills is quite lower than for a software developer, and you get exposed to a lot of interesting domains that you never would doing web work.

So what is SCADA? It stands for Supervisory Control and Data Acquisition, and convers a wide range of control systems, from the factory floor to waste water treatment and data center power management.

You can search for the term SCADA or HMI (Human Machine Interface) in the job boards. A pure HMI position designing screens in a product like: Wonderware, Cimplicity, Genesis, FactoryTalk or RSView, will be much more entry-level than what most people consider SCADA to be, which is HMI plus programming PLCs (Programmable Logic Controllers).

HMI/SCADA are more niche positions than web developer, and as such you can find more reliable and higher paying work. If you can write VBA macros (especially with input forms), some SQL, and know how to set up Windows machines on a network, you can probably find an entry level job. This, plus a few CS classes is all I had, but then I got bored, worked as a web developer, and eventually found work writing an HMI system from scratch.

This quote right here, "Create some kind of website or tool or project that people can see, use, and get a feel for your abilities" - throwaway420, will serve you well.

This is called the never ending or perpetual side project. It represents your capability at any given time if you keep it current. Add new technologies to it. Make new versions of it all of the time. I have personally had interviews succeed on the strength of this project alone, based on my ability to talk about its structure.

Build any project for anyone who will let you(any brochure website is great), using the skillset you wish to develop. If all else fails, build some apps for android or ios. All the challenges of real programming(because it is) with the potential for some actual side money(just a bonus, not the reason to do it).

Finally, it takes time and perseverance. Persevere in the path towards gaining and being able to demonstrate practical and conceptual knowledge. Giving up is the quickest route to failure.

If you know html css and a little bit of php, build websites for small businesses. Get decent at wordpress(basically how to install and edit themes) and knock on doors of restaurants/hair salons/retail stores that have shitty/no websites and offer your services. Do the first couple for free and boom you have a portfolio.

Obviously, there's a big difference between a static site and web app, and full time employers will know that. However, people hiring freelancers won't, so you'll get asked to build dynamic stuff that's relatively simple like an appointment manager and be able to add depth to your portfolio.

My email is in my profile - I'm a self taught programmer who now works full time in the field (though I admittedly had some advantages you don't), feel free to get in touch if you have any other questions. (Obviously goes for others as well)

Keep doing what you are doing; stay passionately curious.

Once you think you are good enough, help out at an open source project. Or start your own little project. One step in front of the other.

Then show case. Create a Show HN thread of what you built.

Build your online presence: Help out others on StackOverflow. Use twitter to tweet what you've learnt. Create a personal website with the projects you've worked on. It becomes your resume.

One simple way to break in to the industry is do QA. QA is typically sorely needed and teams don't spend enough time on it. Just show that you are detailed oriented, can find bugs and document how to reproduce them. I just hired a QA intern who, similar to you, is outside the industry and trying to break in. He has been a tremendous help to the team simply doing QA three times a week.
Hussle beats talent. All companies have too many projects in the pipeline and not enough people who can deliver. Remember that people pay for improving revenue or decreasing costs and just follow the money.
Build something. Build something else. And something else. Upload said things. Find people who build these types of things. Ask them if they need any help, even temporarily.

Job done.

Find simple problems that you or your friends have, solve them with code, open source your code, blog about it -> Job.
Easy actually. You continue doing what you're doing and showing the world you can program by writing open source projects of value, having a github profile with examples, writing articles that help others, chiming in on places like stackoverflow, keeping up by reading places like HN, and generally just constantly keeping active by doing things you love. Understand the process of building software inside and out. Not just software, but the process. What tools, what steps.

After you have a little portfolio of work you then create a nice small resume where you are honest but show your ambition. Put your projects on there. Put the articles you write on there. Craft it well.

Next step is to target companies looking for juniors. Search every job hunting website you can find. Establish relationships with good recruiters. Explain what you want to do and have them help you find a good spot to start. You'd be surprised how important this is. Recruiters, love them or hate them, are the lifeblood to new ventures. Find good ones and stick with them.

When you arrive at the interview be ready to show you are looking to learn. When hiring junior developers I look for that trait first and go from there. Show them you know how to build software by demonstration of your projects. Show them you can work with tools.

Once you do all this you are in there. It's just more and more of the same throughout your career. I know because I broke in myself with no college degree and no experience.