Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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).

Any help is greatly appreciated!

share|improve this question
    
Note that most programming these days are done in teams (simply to get done) and being able to write code in the form expected by the others is an important skill. You may want to take a programming course or two at your former university if at all possible simply to learn the basic skills. –  user1249 Aug 12 '12 at 20:21
2  
"learn the basic skills" - this was not meant to imply you did not know any basic skills, but that there is a lot to learn, and it is not certain you have learned them all by yourself. –  user1249 Aug 12 '12 at 20:30
4  
Have a look at What Every CS Major Should Know. It stresses the importance of having a git portfolio of experiences to show employees, Linux/UNIX skills, various programming paradigms and lots more. Also see Programmer's Competency Matrix and Coursera's free Computer Science courses. –  Anthony Aug 13 '12 at 1:44
    
@AnoPäivinen BTW, don't underestimate the amount of self-taught people in the biz and don't get discouraged by what might seem like huge gaps that you will have at first. I worked with some amazing people who were self-taught. –  MrFox Oct 4 '12 at 18:48
add comment

10 Answers

up vote 6 down vote accepted

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.

share|improve this answer
add comment

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.

share|improve this answer
3  
"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" - For many companies, that depends entirely on how cheap they are. –  pdr Aug 12 '12 at 14:42
add comment

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.

share|improve this answer
add comment

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.
share|improve this answer
    
Thanks for the insights! It sure might sound strange that I'm deciding between China (Shanghai) and Japan, they are very different but I really like them both. But I can't yet decide which one is better, so I'm aiming for both and see what happens. I wonder if that makes sense! –  Ano Päivinen Aug 13 '12 at 11:20
    
You can like them both. Just make sure your applications are specific for Chinese and Japanese job markets. Maybe, different cover letters would be also helpful, as in this answer. –  bytebuster Aug 13 '12 at 12:22
add comment

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.

share|improve this answer
2  
That's what I normally find missing in CS grads! Ability to recite the O(n) for different containers but having never used a debugger. –  Martin Beckett Aug 13 '12 at 1:53
add comment

A Clue

Seriously, I look for just a few things in a candidate:

  1. basic ability to program
  2. interest in programming
  3. understanding commensurate with education and experience
  4. ability to learn
  5. 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.

share|improve this answer
    
Can you explain what you mean with kindness? Is it a property of not-being-a-jerk? –  Ano Päivinen Aug 13 '12 at 11:02
1  
@AnoPäivinen: It cover a range of behaviors relating to treatment of colleagues which all come down to consideration for others. "Jerk" is defined by failure to consider others. –  kevin cline Aug 13 '12 at 18:19
    
I was about to say I should come work for you, based on your requirements, but I have no idea what a tree/hash map is lol. After three years of living and breathing software/web development I still get slammed at interviews for things I've never heard of. Makes me feel like I haven't learned a thing. Sometimes I swear you all make this stuff up. Either that, or I really won't learn anything until I get hired. –  Josh Campbell Feb 6 '13 at 12:12
    
@Josh: get a copy of "Introduction to Algorithms". Any edition. –  kevin cline Feb 6 '13 at 20:09
1  
@papercuts: If you are applying for internships, then I think it would be reasonable to mention that you have solved n Euler problems, where n > 20. Your goal with a resume is to get a call. Information that shows some ability to actually program won't hurt. –  kevin cline Feb 14 '13 at 20:07
show 2 more comments

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.

share|improve this answer
    
OK, I'll care less of how my software ends up like at the hands of the client and consentrate on writing it well. –  Ano Päivinen Aug 13 '12 at 11:31
add comment

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:

  1. Good attitude
  2. Passion for programming
  3. Computer experience - to see that you understand basics of how computer and software work
  4. Work ethic and soft skills
  5. Ability to learn and self-improvement
  6. Educational history
  7. Previous job experience
  8. Lack of preconceived notions
  9. Ability to ask questions - Yes, ask questions rather than making assumptions.
share|improve this answer
add comment

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.

share|improve this answer
    
Good point in learning different IDEs. My attitude thus far has been "whadev, I'll learn 'em when needed". –  Ano Päivinen Aug 13 '12 at 11:25
1  
I see your point about IDEs, but I'd take someone with only command line Java experience over a BlueJ developer any day! –  Michael K Aug 13 '12 at 13:24
add comment

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.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.