3 ms·
Here are a few things that either I regretted not learning/being taught in my CompSci course, or that I see lacking in new juniors who start on my team: - How
by mattlondon 6y ago
Here are a few things that either I regretted not learning/being taught in my CompSci course, or that I see lacking in new juniors who start on my team:
- How to actually build something entirely from scratch and host it somewhere so others can use it. I.e. do something 100% top-to-bottom where you not only design & write a bit of software then hand the assignment in, but actually set up a server, install what you need, deploy the software, monitor it etc etc - bonus points for getting your friends to try and use it have them file bugs for you to fix. Some suggestions - write a clone of Wordpress/StackOverflow/HackerNews or whatever and do the whole thing yourself, right down to database schemas and installing and configuring nginx yourself. You will learn so much if you have never done this. Too much at school was compartmentalised so that you only had to "focus on the problem" and the other stuff was provided for you.
- Source control: Git/Mercurial and other distributed ones, plus also still-in-use dinosaurs like Perforce/SVN. These days with Github everyone probably knows this, but I'll say it anyway since at school it is often just you working on your own.
- Unit testing :-) Bonus points for continuous integration/deployment.
- Basic project management: how things are run in teams, code reviews, bug handling etc.
- web + networking fluently (answer the "what happens when I enter example.com in the browser" question from the initial DNS lookup through to the DOM rendering and everything in between)
- fundamental *nix familiarity. Don't need to be l33t, but at least be able to get basic grunt work done with pipes and the like instead of having to resort to dumping data to excel and filtering it there. Sed, awk, grep, wc, uniq, sort, vi etc etc etc.
- the obvious algorithms + data structures stuff.
- These days: Cloud: the 12 Factor App thing is quite a good thing to read and internalise - it may change your perspective of how you think about approaching things. Probably worth having at least a basic understanding of docker + k8ns, as well as using at least one of the major cloud provider's services (they're all largely the same for the basics)
Otherwise my advice would be to just generally get stuck into stuff and just keep messing around with as much different stuff as you can to keep your horizons broad and experience varied. Don't try to focus too much on specific areas - there might be stuff you didn't even think about previously.
Have fun & good luck!