My name is Larry, but you can call me the bugslayer (codename). I am a full-stack java developer. I have been creating enterprise applications for the last couple of years or so. I know you are interested in the origin of the codename, but that’s a story for another day. Today I want to tell you why you, no matter how much you think you are the hot-shot in your CS(Computer Science, I’ll be using a lot of those abbreviations…so keep up. Its a geek thing. It takes too many cpu(I won’t even bother explaining this….) cycles and memory to say the whole thing) class, you are not ready for the brutal corporate world of software engineering. I used to think I was pretty good back in campus, around 2 years ago. But then I left, and this cruel world hit me smack in the face like a badly-timed frisbee. So, as a guy who has earned some bragging rights in the field (not as many as I would want though), let me tell you some things I wish I knew before I left campus.
0. Schrodinger’s Cat
I can already see the puzzled look in your face. That’s exactly why you are not ready. If you do not know this very famous cat(I can see you’ve already opened a new tab to google it…shame), then you need to really do a lot of thinking.
But what are cats doing in a coding article you ask…Well, Schrodinger’s cat is not really about a cat. Its a thought experiment described in 1935 by a physicist, Schrodinger. Its describes a problem with the Copenhagen interpretation of quantum mechanics. What I am trying to drive into that stubborn skull is that, software engineering requires a lot of thinking. In order to create useful software products that at least provide more solutions than the problems they bring, you have to do a lot of these thought experiments. Play a lot of scenarios in your head. A lot of my projects in campus were poorly thought-out. You know those Big O notation(Data Structures Algorithm Analysis Unit) and data structures that that boring lecturer is trying to hammer into your thick head while you are trying to figure out which series to watch tonight (you are actually under-utilizing that laptop and if I was there I would donate it to the class 1 kids), they could mean the difference between your app taking days to run the payroll of 6000 pensioners( actually should be fixing this particular problem asap with our app) or doing the same in minutes. So, yes, think…analyze a problem…analyze your solution..and then analyze it some more….analyze it till I tell you its ok to code.
I am beginning to enjoy this..me throwing some words that you have no idea of and you staring at me like Jesus just announced you are not going to heaven even after all the coding you have done ( am very spiritual by the way, but I am weird that way).
Anyway, unless you are a loner(this will only work in your favor iff( if and only if) you create the most amazing app that we all can’t live without), as an aspiring software engineer, this is one word you should know. Making a great app is a team effort. You have to work with several other guys to ensure that your software does what its supposed to do, delivered in time and on budget ( now you wish you paid more attention to that unit on software project management…don’t you?). Anyway, Scrum (and am not talking about Rugby btw (by the way)) is a software development methodology used to ensure that the whole team works smoothly towards delivering a successful software product. I could go on about scrum, scrum masters, sprints, task boards…etc, but I believe in your googling abilities (look at me already giving you compliments).
So, you have just finished the next killer application. Now to take over the world. Just when you are about to show that lecturer who is going to give you connections, you find your laptop bag was unzipped somewhere in a matatu and the laptop gone (it was actually stolen by that smart guy in a suit seated next to you with an empty A5 envelope not the annoying rowdy guys talking about how drunk they got last weekend). We’ve all been in that situation. So, Git to the rescue. Git is one of the most popular version control software. So, go ahead…google it. You will thank me later.
To end it all, I like the number 3, maybe because its an odd number and a prime number. In any case, I like it. And so I will leave my array of reasons why you are not ready at that size. Plus, now you have a lot to research on. And in case you are wondering why I started numbering at zero, then you are not geek enough.
Back to code….