I’m a self-taught programmer about to enter the job market. What I want to know is what is the best way to show my experience to employers?
What do employers want to know about my programming experience? Do employers want to look at code I wrote or could they want to see the software in action? Or do they only care how much my software is being used/how much it has created revenue? Should I write about my design and programming style?
My background: I recently graduated from a university where I studied foreign languages, and it was during this time when I found out that programming is the thing I really want to do. Currently I’m a garage programmer, developing a software for a client for commercial use while continuing to self-teach myself, but my aim is to start a “proper” employment and career. As an added twist I live in Finland at the moment, but I’m looking for employment in China or Japan (I learned both languages while studying abroad).
4
I would say that employers look for these things in all programmer applicants (this is coming from my own experience as the head developer who is screening applicants):
-
Ability to be flexible and learn new technologies fast (this is especially important for self-taught programmers)
-
Ability to communicate problems
-
Ability to solve algorithmic and logistic problems (important for analyst programmers)
-
Ability to conform to the standards and rules by the local busines, ie. dont be too stuck in your ways, be sure to follow the naming conventions of the business you work for.
-
Honest and hard working.
In a lot of cases the bigger companies will ask you to provide an applicant exercise. These exercises range in difficulty but one example might be to code a reusable module which converts an amount in dollars to an English readable string of text which would be written on a cheque for that amount, ie. “$999.34” to “Nine hundred and ninety-nine dollars and thirty-four cents”.
It is important to note that it’s not just the code they will be looking at in these exercises, but also the documentation that comes with it, ie. doco that explains the problems, the assumptions, and the algorithm used. They will also be looking at your naming conventions (mainly checking for consistency) and checking for clear code commenting.
A Clue
Seriously, I look for just a few things in a candidate:
- basic ability to program
- interest in programming
- understanding commensurate with education and experience
- ability to learn
- kindness
Examples: self-taught high-school graduate who has solved 50 Euler problems: easy hire. MSCS with 4.0 GPA who can’t explain the difference between TreeMap and HashMap: don’t hire.
6
Others have already answered your direct question about self-taught applicants. However, there’s another consideration that may be even more important than being self-taught or not. I’m talking about the cultures of countries you’re planning to work and live in.
First off, never write “employment in China or Japan”. It sounds like “Finland or Australia” (no offense). They are totally different, and you have to choose.
Also, employment in another country usually means higher taxes for a company, various limitations (e.g. hire one foreigner, have to hire N natives), and so on. So on order to be hired in China you have to be really good at what you’re doing.
In fact, you have two best options:
- Graduate in a country of your future. This will give you (a) knowledge in national standards; (b) business contacts; (c) formal diploma (which may be more important than you think). Also, likewise everywhere, big companies contact with universities to find most prominent students, and you have good chances to be the one.
- Apply to a multinational company that has branches in China. You may speak with HR and agree to work on a local position for a certain time and then move within the same company (less paperwork). Having language and cultural background, it would be easier for you. And, by the moment of move, you will already have practical I.T. experience in the company.
2
What do employers want to know about my programming experience?
Chiefly, that you have some. Put yourself in their shoes: if you were hiring somebody, would you pick the guy who might not know what to do with a compiler, or the guy who has been around the block a few times, learned to solve problems, and can get some useful work done without a lot of hand holding?
Do employers want to look at code I wrote or could they want to see the software in action?
Yes. Having some code to show can be helpful. Having a working product to show, and being prepared to answer questions about how it works, why you did it that way, etc. can also be helpful. Different employers will value these things differently, but it’s always better to have something than to have nothing.
As an added twist I live in Finland at the moment, but I’m looking for employment in China or Japan (I learned both languages while studying abroad).
There are a lot of people in China and Japan who speak Chinese and Japanese, respectively. Probably not so many who speak English and Finnish fluently too. Use that strength to your advantage — look for companies that need those language skills.
1
I’d say the most important skills that self-taught programmers could lack without knowing it are the software engineering and software architecture related ones.
Make sure you know more than just writing code, make sure you know what is maintainability and how to achieve it; what is SOLID, why is it considered good and needed; design patterns, etc.
Also, try to fix any bad parts of your process. For example: automated testing (something everyone should do!), bug tracking, source revision control (also mandatory). This list is not meant to include everything, it’s just an example.
1
What do employers want to know about my programming experience? Do employers want to look at code I wrote or could they want to see the software in action?
Yes, these are the best options. Qualifications aren’t a particularly good indicator for ability to write code. The same applies to previous employers – lots of people can scrape by in a job they are unsuited for. I want to see what kind of code you write and a track history of being able to build stuff that has been put into production.
Or do they only care how much my software is being used/how much it has created revenue?
That’s outside of your area of responsibilities, I don’t care about that stuff unless you’re going for a project manager role or higher.
Should I write about my design and programming style?
Not too much, but perhaps bullet points showing areas of interest with your code samples would be useful.
1
Self-learning skills
Yes, self-learning is your cutting edge competitive skill which you should emphasize and present with pride. In addition, you should show your passion for programming and desire for self-improvement.
What do employers want to know about my programming experience? Do employers want to look at code I wrote or could they want to see the software in action?
They want to see your accomplishments and analytically reasoning skills. They want to see – what you did that benefited the project, what role(s) you have played in carrying out a project if you worked in a team. How you troubleshoot the problems and overcome technical issues. How you worked with colleges, how you handled work pressure.
Some other points that might be very important for employers:
- Good attitude
- Passion for programming
- Computer experience – to see that you understand basics of how computer and software work
- Work ethic and soft skills
- Ability to learn and self-improvement
- Educational history
- Previous job experience
- Lack of preconceived notions
- Ability to ask questions – Yes, ask questions rather than making assumptions.
In addition to the other answers – list the tools you’ve learned while you were teaching yourself.
I’ve trained graduates from big-name schools with big name degrees that insisted on writing Java code in Windows notepad and using the command line compiler (‘it’s better that way’ – for a one class program). Most workplaces use IDEs and other programming tools. And teaching them how to use Eclipse was easier than trying to teach them SVN.
By listing one or more IDE environments or (more importantly) one or more code repository tools you will show you are ready to work with a team.
Answer B: if you can get there try the CEBIT tradeshow in Hanover in Germany. We used to get people visiting our stand asking for jobs in our country. The probability is low that will you might meet the right person who can help you. Or ask them if they need a local/Europe person to help them.
2
Once you can demonstrate you have written quality code, how and where you learned to program is less important. You built the entire application, so you should be able to explain the design, the problems you faced and why you chose those solutions.
If your application isn’t well-known, you’ll have to give more explanation in your CV and cover letters. Having a large number of users is a benefit because it shows you can handle scale, the revenue generated is going to be difficult to add any benefit. Someone could hire a programmer to create an appliation using horoscopes to help brain surgeons. Not sure I would hold the programmer responsible for this useless product. Maybe a startup would prefer a dev with some product sense, but they can’t hold it against you because you need to pay your bills.
What I want to know is what is the best way to show my experience to
employers?
If degrees aren’t available, known certifications are a plus. Some certification don’t require a course, you could only take the exam.
What do employers want to know about my programming experience?
Your programming experience consists in projects. In your CV you write your skills. AT the interview you will be asked about projects you have worked on. Then you will speak about what you did, what problems you encountered, the solutions you found, etc.
Do employers want to look at code I wrote or could they want to see
the software in action?
Maybe. Personally I didn’t hear about employers asking to see code (besides the code you write during the technical interview, as a test). If you are a web-designer or a user interface designer, in most cases they will want to see some websites you made or designed.
Or do they only care how much my software is being used/how much it
has created revenue? Should I write about my design and programming
style?
Most employers will be interested in the programming languages you code fluently in, the knowledge you have and the skills you acquired. How much the software is used and revenue created is marketing stuff, not programming stuff.
Most companies have their own design and programming style. They would expect that a employee should be familiar with techniques like Agile, Scrum, Extreme depending on what they use.