Essential skills that we didn't learn in university
It’s been more than a year that I’m monkey coding in a some-how large scale company and getting my head around real coding. In a year that I spend in industry I found some of most important tools and concepts that I use in my every day job, are the the ones that I didn’t heard a word about them in school. Here’s the three most important God-knows-why-they-do-not-teach-us-in-university things that are at top of my head
First and foremost is TDD : I can’t even remember how did I wrote programs without unit tests, I literally can’t. I mean did we just open up an editor and start writing code ? How did we change the code ? How were we confident about it working as expected ? All we learned was waterfall design and UML. Heaven forbid !
Second one is Version control : It’s no longer about code bases of two or three hundreds lines of throw-away code that you would normally do for your final projects in university, We’re now talking about thousands lines of code. Version control is the only way that you cope with immense amount of complexity in large code bases and it also helps me to take baby steps toward a solution.
And finally the third one, Refactoring : In university what matters is you can provide expected behaviour, before project deadline. After that your code gonna be worthless. No one else will read it, you’re not expected to add more features and who gives a damn about bugs ? ( They just don’t have to pop up during presentation ) For me refactoring is synonym to responsibility. Your code is your responsibility and you have to take good care of it.