Job hunt tips
Practical tips for the job hunt:
Update your GA and LinkedIn profile, and make it a good one. You'll be surprised at the number of employers that make contact through the GA webpage. I've had around 7-8 people contact me through me, and other students from WDI3 have had more.
Go to meetups and events that interest you. I've met folks who have gotten jobs through these platforms. Plus there's free food and awesome talks!
Build your own side projects. This will help build up your portfolio, and it will speak volumes for you when employers are assessing candidates. Had a brainwave while sitting on the toilet bowl? Write it down! See a problem which you think can be solved by software? Put on your agile development hat, wireframe it and build it in a weekend! I find that two things help: set deadlines for yourself, and do not overthink it. Build MVP first and then iterate from there. It's better to have several interesting projects in the pipeline, even if they are half-complete, rather than one mega perfect project that never got started.
Get good at technical interviews. Even startups such as Honestbee, Ninjavan and Government Digital Services will have technical interviews in the form of (a) programming challenges, (b) programming challenges on the whiteboard or pen and paper and (c) Q&A on programming concepts (e.g. object-oriented programming and full-stack app development) to assess your fundamentals. Generally, they are not looking for complete or perfect textbook answers. They are assessing your thought process and how you approach a problem. These articles provide interview tips:
Practice testing. This will help you get comfortable and help you shine in technical interviews. How? Go to your programming challenge webpage of choice (Codewars, HackerRank, Codility), copy and paste the challenge in your code editor, and write your own tests (doesn't matter whether it's rspec, mocha or chai) to solve the problem! (see example) It is a fun and rewarding experience. It's like doing crossword or sudoku puzzles, but for programmers.
- If you run out of tests to do, you can even take regular mathematical puzzles (e.g. write a function that lists fibonacci numbers up to 1,000,000) and solve them using Rspec/Mocha!
Read widely! Stay up to date with developments in the world of programming. You can subscribe to mailing lists such as Javascript Weekly and A List Apart. 'Awesome' lists are really awesome too. (Be careful to avoid infobesity!) There are some great books on programming best practices which are still relevant today, such as:
- Eloquent Javascript by Marijn Haverbeke
- Think (X) series ('Think Python', 'Think Complexity', etc) by Allen B. Downey
- Clean Code by Robert Martin
- Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides
- Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein
- Refactoring: Improving the Design of Existing Code by Martin Fowler, Kent Beck, John Brant, William Opdyke, don Roberts
More important stuff / tips
Accept that you'll never know enough (a.k.a. the imposter syndrome). The day that you think you know enough is the day that you stop learning. Saying "I don't know" and "I don't understand" is a good thing. It's great. It's essential. It doesn't mean "I'm stupid" or "I'm inexperienced and not worth talking to about this." It means that you're opening yourself up to learning or understanding it. I've learned enough to know how much I don't know. When I was starting out, I thought I knew so much. (Gabe Hollombe, Pivotal Labs)
Believe in yourself. You know more about javascript, ruby, html5, css, front-end frameworks than 95% of the world! You now have skills that will be valuable to businesses, decision makers, NGOs, etc. Hone those skills!
Always be learning. For me, this is the best part about being a programmer. You get to continually learn interesting ways to build things. You have access to open source libraries, documentation, stack overflow, meetups and awesome conferences and talks. Pick something, prioritise them and master it.
For more tips on software development, check out this awesome guide by Gabe Hollombe (Pivotal Labs)