Don’t completely rely on your grades to get you a job after uni. A CS degree will prove you're intelligent and understand the theory, but that will only take you so far during an interview. We have to talk about apps we've built with potential employers, just like you would want a carpenter to show you pictures of his previous work before you hired him.
While studying CS at university I worked 2 days a week for Red Badger, even in my final year when I had a dissertation. Some of my class mates questioned if it was a good idea suggesting the time it takes up could damage my grades. But it did the opposite, I got better grades because I learnt so much on the job. And when you see solutions to real life problems it makes for a better understanding to the theory behind it. And it’s that theory you will get tested on at university.
What I've been exposed to that I wasn't in lectures
- Using open source libraries and frameworks. Theres rarely a need to reinvent the wheel, millions of man hours have been put into open source projects which you can harness to make yourself a more productive developer.
- GitHub is our bible for third party libraries. Git branches and pull request are the flow of production.
- Ruby - the most concise, productive and syntactically readable language I’ve ever used. Unlike Java which the majority of CS degrees teach, Ruby was designed to make the programmers work enjoyable and productive. Inventor Yukihiro Matsumoto in a Google tech talk sais “I hope to see Ruby help every programmer in the world to be productive, and to enjoy programming, and to be happy. That is the primary purpose of Ruby language”. Ruby is loved by start ups and consultants because they need to role out software quickly.
- Ruby on Rails - built in Ruby it's the most starred web application framework on GitHub. It's awesome and the community behind it's massive. If you want to have a play with it I recommend it's "Getting started" guide (Don't worry if you've never used Ruby before just dive in, it's so readable you'll be surprised how much Ruby you'll understand!).
- Good habits - such as the DRY, YAGNI and KISS principles. The earlier you learn them the better!
- Heroku - makes deploying a web app as easy as running one terminal command. Deploy your code to the Heroku servers via Git and it will return you a URL to view your web app. Also its free!
- Responsive web applications are the future. Make one code base that looks great on mobile, tablets and desktops. Twitter Bootstrap is the leading front end framework, it’s also the most starred repo on GitHub.
- Facebook React - Once hard JS problems become effortless. It’s open source but developed and used by Facebook, therefore some seriously good engineers have developed this awesome piece of kit.
- Polyglot - Don't just invest in one language, be open to learning about them all.
- Testing - This was not covered in the core modules at my university however Red Badger are big on it. Simply put we write software to test the software we make. For example we recently made an interactive registration form in React for a client. To test this we made Capybara integration tests, they load the form in a real browser and imitate a user clicking and typing into it. It rapidly fills in the form with valid and invalid data and makes sure the correct notifications are shown to the user. This is very satisfying to watch because you realise the time your saving compared to manually testing it.
Reasons for applying to a start up
- They are small and have flat hierarchies which means you will rub shoulders with some talented and experienced individuals. For example a visionary business leader or an awesome developer. Learn from them!
- More responsibility.
- They're more likely to be using modern front line tech. Some corporates are stuck using legacy software!
- If they become successful you will jump forward a few years in the career ladder compared to working for a corporate.
- Share options - own a slice of your company!
- There are lots of them and they're hiring!
Where to find start ups
A good list of hiring startups for London is maintained by the increasingly successful start up job fair Silicon Milk Roundabout. Also Red Badger are currently launching Badger Academy, they're paying students to learn web tech! This is extremely awesome when you consider UK universities charge £9,000 a year. If your interested in applying email firstname.lastname@example.org.
There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies.
C.A.R. Hoare, 1980 ACM Turing Award Lecture