Career advice (Programming)

Table of contents

Child pages

My Advice

  • Having a portfolio / references / list of books you've read is really important (especially the portfolio). I sent out my resume to 171 jobs on HN one month and only got a handful of responses. I sent it out again the next month with minor changes, but this time with a portfolio / reference / list-of-books-I've-read, and this time got a much bigger response (maybe 5x or more responses). I made a point of having a picture for each of the projects in my portfolio.
  • Automating the process of applying to jobs is really important, otherwise you're going to get discouraged.
  • Your first goal should be to make your application good enough so that people start inviting you to interview. Then once you start getting offers to interview your goal should be to get good enough at interview questions that you can pass the interview. There are books that give you interview questions so you can practice them. Sites like Project Euler and HackerRank are also the same as the challenges you'll be given when asked to interview. The difference is that when you're being interviewed you'll need to be able to solve it in a certain amount of time.

Job interviews

  • Do an hour of prep for each interview.
  • Read everything on their site if you can.
  • Prepare a list of questions so you seem interested.

Others' advice

  • 2012.05.15 - Justin Khan (founder of - The First Time I Used Programming At Work
  • 2013.09.30(?) - Pastebin - Programming is Terrible
    • programming is really fucking terrible. I mean, programming the job, not programming the hobby. I still like programming in my spare time, but I don't think I ever caught myself writing code for my employer and thinking "hey, I really enjoy this".

      In the end, it's just a job. You figure out what's needed, write it, test it, fix bugs, get input from customer. Rinse, repeat. In the end, you get praised or maybe even receive a bonus. Or something happens (like the boss suddenly deciding the company needs to go in the a new direction) and a few months' worth of work goes to waste. But hey, whatever, I still got paid for it, didn't I?
    • My advice would be - do not become a "software engineer". I know there is a lot of demand right now, but 1) the demand won't last forever; 2) most of the "software engineer" jobs are boring as shit.

      If you really like programming, try to specialize. Like algorithms? You can be a computer scientist. You can become a systems programmer and develop OS internals. Try digging through Linux source code. If you're into programming languages, you can get into writing compilers. I hear LLVM is amazing. If you like graphics, dust off those math books and get good OpenGL tutorial. Whatever you do, don't just be a generic "software engineer". It sucks bad.

      I wish someone gave me this advice when I was younger.
  • 2014.10.10 - Ukiah Smith - Programming is terrible so learn to enjoy it
    • My first job as a programmer was an eye opener for me. I was exposed to the reality of getting the job done. (...) Programming wasn’t the magical world I wanted it to be. So projects became just another website to build. It became a numb experience.

      I never wanted my work to be just a project, just another website. The clients don’t know a bit from a byte. They don’t know the nuanced details of how all the parts of a web page interact. They couldn’t care less about how it works, or what I coded, just as long as it works. For a time I believed they were right. I just made it work.

    • I came to the realization that clients (and account executives) would never know as much as I do. That was not their job; it’s what they hired me to do for them. I realized that my job was more than just programming, I should be also a teacher and an advisor. Clients looked to me to help them make decisions.

      I also learned to embrace the process of programming websites. I came to know that programming (websites in particular) was not about creating an end product, a final perfect form. It is a journey of discovery and solution finding. I embraced Wabi-sabi; the idea of the imperfection and incompleteness. The websites I made were not done, not finished; but they were done enough. They were “good enough” to be launched to the world.

      It used to be that “good enough” was a dirty word to me, a black mark. It was a sign of failure. I’m not sure if through practice or years, but I have come to embrace “good enough”. To embrace the ugly imperfect tool that does the job and pays the bills. I have even come to see the beauty in the ugly that is PHP. To see how it can be used to make beautiful code out of it’s ugliness.
      I believe in the magic again. I learned that within the boundaries of a project I can create little realms of beauty. No one cares how I code so I can code to my own enjoyment. I’ve stopped caring what other people think, and I’ve stopped looking to the job and outside world to give me enjoyment and I’ve started looking inside myself. To find the joy in my own actions, in the moment.

  • 2015.12.09 - TripleByte - Who Y Combinator Companies Want
    • rec'd by the CTO at SketchDeck
  • Typical Programmer - The joys of maintenance programming
  • Typical Programmer - How I work as a digital nomad
  • Typical Programmer - Tips for successful freelancing
  • Typical Programmer - Thirteen Patterns Of Programmer Interviews
    • Takeaway: Try to get the interviewer to talk as much as possible.


    • What advice would you have for folks who are just starting out or thinking of getting started?

      Work through HTML, CSS, JS, and either Python or Ruby, then decide on the type of development you want to do. If you’re a fanatic about Android, for example, start learning it, and stick to it until your 1000 hours is up.

      A mistake that I started having was thinking that perhaps a specific framework or platform wasn’t suited for me, and that X might be better. The moment you start acting on this, the longer it will take for you to learn and get a job doing it. If you want to be an iOS developer, or Rails developer, make the commitment, and work through the resources online until you get it.

      You should also seek out other developers in meetups for the community you’re in. Get close to your designer friends, and start working on projects that they have in mind. Having someone else work with you keeps you accountable, and your product will be more polished in the end. Once you go pro, you’ll see that design and code is very much hand and hand - like peas and carrots.

      Which steps would you recommend for folks who want to find jobs after Codecademy?

      Seek out a position in manual QA at any development house, agency, or company. Despite the requirements they may have on their listing, all these jobs require are good communication skills (to talk to both the developers and the business folks) and attention to detail. I believe web QA in general has the lowest barrier to entry (compared to hardware QA). Complete the HTML, CSS, JS and one OOP language on Codecademy, then create your own website such as a resume/bio site, then go shopping for employers.

      Once you’re there, soak up the knowledge from the developers and business folks. Then plan your exit as you sharpen your programming skills. An employer will feel much more comfortable hiring you if you’ve had experience in a software development environment.


Conversation with the head of the DC RoR Group:
- I've added emphasis to parts of the guy's email
- This guy was really nice to take the time to write out all of this advice.

Hi David,

I was just accepted to DevBootcamp (in SF / Chicago) and was wondering if it's a good idea. It costs ~$15,000 and is 9-weeks long. I don't want to live in SF or Chicago; I'd like to stay in DC.

Do you think the market for RoR developers in DC is healthy enough that I'd be able to find work after finishing this program?


Hi Nathan,

Could you tell me a little about yourself and your background. I think the answer will largely depend on those factors. Are you currently a developer looking to get a jump start on a new language/platform (Ruby/Rails) or are you new to development and looking to switch careers? 

Without knowing that I would say that there is an insanely strong demand for Rails developers anywhere you go, including DC. It's supply and demand and in this case there are far more openings than there are qualified applicants. The key word is qualified. While intermediate and advanced developers can write their own ticket to varying degrees, the beginner might still have a difficult time finding that first job. That being said I've recently seen a dozen or so employers in this area who are hiring at that level. That landscape may change but it tends to wax and wane so you just wait it out. $15k is a lot of money but it's also the time invested, not only for the program itself, but the time it will take to find the right job after you complete the program. If you're patient afterwards then I think it's worthwhile. 

I've heard great things about DevBootcamp and I've met a number of graduates who have all impressed me. It's a tough decision to make, but if you're fully committed to a career change I don't think you'll have any regrets. 

If you do decide to attend, my recommendation to you would be:

1. Start creating immediately. Put it on Github. Employers will look at your Github account to validate you as a developer.

2. Get involved in open source. Pick a project you're interested in and just dive in. Don't be shy to ask for help. You'll not only learn a lot faster and from really smart people involved with the project, but you'll gain an immense amount of credibility. Don't be scared or intimated to do this. You can ease in and people will help.

3. You need real world experience to get hired. While the classes themselves are a head start, employers will want to know that you've worked on something real and not just experiments and assignments. If you can't find a job after graduating, do work for free part time. Volunteer yourself to a company or project that's public facing. Investing that time will pay dividends later. 

I know that's a lengthy response, but it's a big decision and I wanted to give it the attention int deserves. Good luck and let me know what you decide. 


Interview Journal

  • 2018.01.10
    • Problems during the interview:
      • My computer was slow when using both PyCharm and sharing my screen and webcam at the same time.
      • Someone near me was messing with plastic bags and making noise.
    • What I did well:
      • Researching the company ahead of time was a good idea.
      • Mentioning that I'd researched the company was a good idea.
      • Asking about the team size was a good idea.
      • Asking if there was a particular project they were trying to staff was a good idea.