Live data from Hacker News

Ask HN: How to get a job when you suck at coding?

news.ycombinator.com

1–10 of 65 posts

Ask HN: How to get a job when you suck at coding?

#1
I have a strong feeling I suck at coding. I have a B.S. degree in CS from an average school in the USA.

1) I have a bunch of projects, but they're terribly boring and have ugly looking code. For example, I spent a year working on an ecommerce site. It does what it needs to do, but there were no smart decisions behind the back end. I never had to use design patterns nor data structures. I just pieced it together.

2) I have a lot of trouble with "HackerRank" style problems. I just finished one, an hour ago, called Codility. Even though I passed all the shown test cases, the final results showed that I got the following scores 13%/95%/0%. The 0% was a debugging problem that required a max of 2 line changes. I have absolutely no clue how I got a 0% there.

I've been trying to get a job anywhere, doing some programming, but all the rejections have destroyed me. Aside from the above coding problems, during interviews companies always seem to want experience in X technology. In one of my most recent final interviews, the VP grilled me about not having Python experience (I don't list it on my resume, but the job required it) and stuff I have barely any knowledge on. For instance, I said I did automated testing as part of a software engineer contract (2 months long), but it was not a job requirement so I didn't get any knowledge beyond writing simple unit tests for my personal benefit. The VP started asking me if I used stuff like path testing, error testing, and a bunch of other words I've never heard of in my life.

Is there any hope for me, or should I look elsewhere?

Re: Ask HN: How to get a job when you suck at coding?

#3
Are there any other areas you are passionate about? Particular industries that you may have more knowledge than the average coder? Having inside knowledge of an industry can help make-up for lack-luster coding skills.

For example, I work in bioinformatics and the coding problems I face day-to-day are by no means insanely difficult. If you have a decent grasp of biology, many people would love to employ you as a bioinformatician (pay is low however).

Re: Ask HN: How to get a job when you suck at coding?

#4
Software development involves many disciplines besides coding. You've already had some experience with automated test development, so maybe consider SQA. If you can read code and describe what it does in a natural language you might want to be a tech writer. If all else fails you can go over to the dark side and be a manager. It's not as much fun as coding but can be more lucrative.

Re: Ask HN: How to get a job when you suck at coding?

#5
How are your people skills? It makes a big difference to have a project manager who's got a decent understanding of the tech. I work with a great PM who didn't make it through the interview as a developer but was asked to join as a PM.

But aside from that avenue, It sounds like you may have been burned by interviewing for coding roles too early. In my experience CS degrees are great for computing fundamentals, but not so great for the real-life project experience that they'll be looking for. Building a few reasonable sized projects from start to finish is where you'll start to get the hang of design patterns, data structures and pretty code. You have to work through building a bunch of crummy projects at first before you start to realize where you can improve for the next ones, and where design patterns will start to make sense.

One thing to be aware of is sometimes the interviewer is totally into tech stack X and if you're not into tech stack X you're going to have a bad time, no matter how good you are, so don't take it too personally (but I know that's hard!).

Good luck!

Re: Ask HN: How to get a job when you suck at coding?

#6
>>> 1) I have a bunch of projects, but they're terribly boring and have ugly looking code. For example, I spent a year working on an ecommerce site. It does what it needs to do, but there were no smart decisions behind the back end. I never had to use design patterns nor data structures. I just pieced it together.

This is not optimal. At the very least having knowledge of usual data structures and some common design patterns is kind of a requirement to get any decent development job. But I think you might actually know more about data structures/patterns than you think.

When working on the ecommerce site, you must have had come across some of these. Let's say the site was written in a high level language. For sure you have used/seen classes, array (or some higher level wrapper like lists in Python or slices in Go), hash maps. When fetching products to be displayed in the "storefront" part of the site, you might have used array/list/slice to store these.

I assume the ecommerce site used database to store data. So perhaps there was singleton pattern used to get a database connection (although this one is not the best example). What about dependency injection? How was configuration passed to objects?

Did some classes inherit from other classes? Did you see interfaces? E.g. a classic example is a payment method interface and then specific implementations for different payment methods (card, direct debit). If there are interfaces it's quite likely you will find a factory to get instance of a specific object implementing the interface?

Have you done any frontend work in JavaScript? If yes, you must be familiar with event listeners. There's a good example of observer pattern for you (queue where you register listeners for specific events) which is very important for event driven programming.

>>> 2) I have a lot of trouble with "HackerRank" style problems. I just finished one, an hour ago, called Codility. Even though I passed all the shown test cases, the final results showed that I got the following scores 13%/95%/0%. The 0% was a debugging problem that required a max of 2 line changes. I have absolutely no clue how I got a 0% there.

Try more of these courses, with practice you will get better. It's very likely you have missed something very obvious with the problem where you got 0% although you thought you got it right. Perhaps you haven't tried it with all example input values?

--------------

Anyways, I would start by taking small steps. Whatever job you currently have, try to become a better programmer by using new or better techniques while in your 9-5 job. Perhaps refactor some old part of codebase and use more effective data structures to make the code more efficient. Use objects and composition to make the code easier to read and understand. When working on a new feature, write unit tests alongside the code.

Also, when it comes to interviewing, you will also get better at it with experience. I have had quite a lot interviews in my career and I can definitely say I was pretty bad at interviewing 7 years ago. Today I am noticeably better and do very well in most interviews and whiteboard exercises.

Do an online exercise or two, study up on data structures and patterns, maybe create some small project to keep some fresh programming footprint in memory. Then go try more interviews, you'll do much better.

Re: Ask HN: How to get a job when you suck at coding?

#7
Seems like you are taking your interview rejections to heart.

Don't do that.

Most companies go with the mode don't hire unless the candidate is a great fit, because they don't want to bear the cost of a mistake. I have failed a decent number of interviews, some on technical ground, some on personal ground. I still think I am not a bad programmer, despite the failed interviews.

Like you I also have doubts about my abilities despite 12 years of work history in the Valley. Impostor syndrome.

Realize that most people are not as smart as Zuckerberg, and that they don't have to be. Don't use geniuses as a measuring stick of yourself.

The most important question is whether you like coding. If you do, pursue it. Whatever deficiencies you have, you will mend as you get more experienced.

Re: Ask HN: How to get a job when you suck at coding?

#8
I worked with people even less skilled. Java/.NET folks "programming" through clicking around and drag and dropping things in Eclipse/Visual Studio. Test folks with no idea on how to do any automation or even how to setup/configure a freaking Jenkins ("manual" testers).

HackerRank/Codility is a very narrow specialization of computer science - dynamic programming. Pity that such narrow domain has become the benchmark in evaluating the skillset of a software professional.

Re: Ask HN: How to get a job when you suck at coding?

#9
Build a small, real world project, and compare along the way to other good examples of the project. As small as Tic-Tac-Toe or a (nice) todo list app.

As you build it you will learn a) best practices and b) what "good" code looks like.

Your code will begin to merge with the style of the good during this project and will rub off on the next project you choose. Eventually you can do a green field project where there is no good example code of. Still, there will be examples of the building blocks, and how you architect other kinds of building blocks together, so you can then learn how to properly architect a project. Now you will be better than a huge amount of programmers because a) you care and b) you have built a few real world projects.

Speak to your strengths in the interviews, reference successful projects and what you did on them. Remove any absolutely terrible code from your GitHub etc. If that means starting from scratch, that's fine, because none is better than terrible, and most people agree a GitHub is not a prerequisite for most jobs. That being said, casual hack projects and attempts on your GitHub is not bad. It means you are interested.

Besides practical projects, be sure you have "completed your education" of classic comp sci topics -- just because you graduated from uni doesn't mean you know all of the classical topics and common interview questions. We all need refreshers. Try to focus on the parts that apply to real world projects, sure, but be sure to have the fundamentals down.

Good luck and stay hungry to find good solutions and take those hacker rank style challenges one a time. You will be great eventually, and able to get a good job soon.

Re: Ask HN: How to get a job when you suck at coding?

#10
You don't need to know a a whole lot to do corporate dev. You just need to be agreeable and friendly.

Keep applying.

One more thing - it'd help to include how long you've been out of school, how many interviews you've been on, where, etc.

Right now you're in crybaby mode, masked as 'give me advice'. What you're really asking for is some sympathy from strangers.

Software dev is one of the easiest fields to get a job - try being a psychology graduate. Wipe them tears, figure out what information you actually need to get a job, ask, learn, apply, work hard.

Post reply on HN