I had an interesting conversation today with someone who was starting out in tech, and asked me for advice.

I did my best to provide concrete, actionable suggestions:

1. Join teams that regularly do code review. This is a great way of finding API blind spots and best practices.

More importantly, it teaches you to interact with programmers effectively. We're a funny bunch, and good PRs are both clear and persuasive.

2. Invest time in mastering your tools, particularly an editor.

I eventually learnt Emacs and became much more effective and navigating and transforming code. There is a learning curve though.

My friend has learnt Java, so I suggested he learns how to use IntelliJ effectively.

3. Ensure you don't limit yourself to a single programming language. Learn a second.

Each language community has different strengths and perspectives. You will learn valuable transferable skills.

4. Practice effective testing.

Testing is hard. Learn the tradeoffs of different approaches: unit tests run quickly and are great for isolated code. Integration tests require more infrastructure (e.g. a DB) and run more slowly, but give you more confidence in your code.

5. Look at open source projects, and see how they're run.

For Java, I recommended Elasticsearch as a great example for an effective project that's run in the open. You can see how they do code review and add tests for new features!

6. Try your hand at open source.

If you create a side project, put it up on GitHub! Don't feel that you need a 'polished portfolio'. You learn by doing, and publishing helps develop lots of skills (VCS, writing a README, separating configuration from code).


We also chatted about some industry (fintech) specific concepts, but the I've outlined the rest above.

Tech is an intellectually demanding, team oriented, varied field, and I heartily recommend it 😊

@wilfredh good stuff. I also like to include “be persistent because you will at some point fail and you’ll need to pick yourself back up”. 😀

@wilfredh if your friend is ever feeling too upbeat and needs someone to rant at them for a while about how tech is a dispiriting, ethically bankrupt hellscape, feel free to point them my direction.

(looks to me like generally solid advice, though, apart from that.)

Sign in to participate in the conversation

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!