There’s So Much More About Being a Developer Than The Actual Code

Story by gioweeargao

January 21, 2020

Kweh in font of terminals and IDEs

I was promoted to a lead role last year and one of the things our CEO told me when we talked was how my team is going to look at me now when there are questions we all don’t know the answer to (the way I always used to do with my former lead).

And the industry I have known for 3 years just became a lot more huge 😳🌍. It sucks feeling like there’s so much more I don’t know. The way I should know them. The way I don’t really have the time to learn them all because other than making sure everyone else in the team is on the right track, I have a lot of tasks too.

I think I'm great at what I do. And that's it. That's where it starts and ends. But there's so much more out there. I have no excuse.

So I am writing this here for me. Maybe one day I could look back at this and laugh at how they are still quite unfamiliar 👻.

Version Control (git)

I saw a tweet once and it says you’re not a real developer until you experience breaking everything by using git and the only option you have left is to clone the repo again. Been there 💁🏻 and I will probably be there again 💁🏻

I had my ojt with just jQuery and without working with a team. Git was probably the most overwhelming thing I had to learn when I started working. I'm glad our OJT program is always improved and now includes a git training so that it's less intense when the actual work starts.

This is a lifesaver, but also, hard at first 💣 (still hard). I managed to redo my stuff and waste too much time just because I don't understand it correctly or because I hit the wrong commands. I am so careful with it now that I often consult with StackOverflow before amending commit messages even though I've done it a lot of times already. You know, just to be sure. 


 IDE

We use Visual Studio Code and there’s still so much I don’t know about it. We spend all day working with this powerful tool that it's a shame some of us (me 🐣) does not maximize it. For the longest time I just used it because it was faster than Atom.

Other than the extensions that could make our code pretty and give us nice icons, there are a lot more that boosts productivity and saves so much time.

It was just a few months ago when I discovered the keyboard shortcut  (cmd + P) to search for files and I don’t understand how I survived all those years ago where I manually look for files in the sidebar.

I also didn't know:

  • I can view a formatted markdown without leaving my editor
  • I can split tabs in multiple views
  • I can see git diff without leaving my editor
  • I can hover in the sidebar and start typing to search for files
  • I don't have to manually sort lists, there's a command for that
  • Instead of manually looking for the original file of the import, I can do that via context menu

I know these now. Some I have learned just recently.

I guess my point is, imagine not having all of these features? Like writing an app using notepad 👻. Our lives are so much better now the only problem that I see is that we don’t know that so much help exists.

Linting and code formatter

We always say our code should always look like it was written by only 1 person and as it turns out that was hard to accomplish🤯. Sometimes I refuse to comment in pull requests just because it's a possibility that what I want to happen is just my preference. Rules are important. And now we have the power to force/automate them 💥.

When I started working we have a linter which was magically removed and I wasn’t too knowledgeable about it to notice. Let’s just say that we are using a linter once again and it is a lifesaver. We spend less time fighting now about the simplest of things.

And, btw, just for the sake of it, I still want to say: ⁉️There's so much more to clean code than auto formatting⁉️. Okay end rant.

Task Runners/Package Managers/Module bundlers/Transpilers

My knowledge with these are okay, could be better by a lot. I usually learn them only when I need to update something, never out of curiosity.

I always say that I don’t have a lot of experience with these because I never really created automation for us. When I started working, the automation and packages and set up are already here. All I did was memorize the commands and type really fast in my terminal to look like I know what I'm doing.

Only to realize that was an excuse not to learn more about it and stick with the basics.

Devops

I see a lot of developers who are also knowledgeable in terms of devops. And I am not one of those.

We didn’t really implement builds and the automation that comes with it the first few years when I started working because we didn’t need them before. And now we do 🤗

There was this one time my boss asked me the progress in our release and I didn’t know. As it turns out our build failed and I have no idea how to troubleshoot it 🤯. Do I need to sign in somewhere? Where do I see the logs? What do they mean? Was it the build or the tests or the deployment? Was it my fault?

This is when I learned, gone are the days that I go to work just to write code.

Edit: I have more knowledge with this now (not just because my bf is a devops) as I did when I drafted this, still a long way to go 🏃🏼‍♀️. I am now in a place where I understand why all devs should know the basics when it comes to devops. I wished I did a long time ago. 

Tests

Ever since I started working we didn’t have tests in our project 👎🏼👎🏼. Later on I have learned that it was because my team lead doesn’t see it as important. And then one day our bosses required us to have it. 

It was a mess.

We couldn’t make Karma work. We couldn’t make Mocha work. We couldn’t make Jasmine work.

It was a little too late for our repository (that we've been working on for years now). I wasted days trying to mock my controllers. Only to have one from our team who made it work using Jest on first try. ⭐️⭐️⭐️⭐️⭐️

Okay now we can tests our components, but are our code testable? I guess this is why tests should start as early as the project starts. As days go by it gets easier to write tests because we now write our code where we know that our tests will also work.

And that’s just unit testing there are 2 other categories I haven’t tried.

Documentation

The one thing we all think is a waste of time until they are done and our lives become better. 

We just recently started documenting processes and guidelines and I have found a new goal: To make it easy for a future new team mate to work around what we've built. Even when I'm not with the company anymore.

Now all I need is the time to do just that ⏱because we all know it's going to be stuck in the backlog for a long time 💤.

Conclusion: Wow what a crazy big world we live in 🌍🐣. Also I will totally fail technical exams 🙄

For me it can be too much. Specially without proper introduction and when they expect you to know it all despite having strict deadlines all the time. For now I am content to learn and make mistakes as I go.

loading

loading

Hello, your viewport is too small. ☹️