Personal Coding is Different than Coding in Software Company, Why?
I was introduced to programming in elementary school, which is mostly about how to make HTML background colour different in the a task-based enviroment; do this, this, and this, you are sure to set yourself to a minimum standard that the education curriculum gave you. The instructor will gave out the exact steps and will definitely help you when you are in trouble. This theme will carry on until I was in college.
In college, it was mostly project based. Your Instructor sometimes won’t teach you anything; instead they will gave you the minimum requirement that they think will pass the curriculum standard. At this phase, you can have your own different approaches, free explore programming languages as you see fit, and time is the only contraint you have. Nevertheless, this standard still encourages you to have mistakes. By the time I graduated from college, I thought I know everything about coding. I was ready to take on programming job and practice what I learned.
Turns out, I got so much to learn in the workplace as well. It was such a culture shock for me.
The first thing is that turns out coding at work require the individual to be mindful. What does this means? you had to use common sense and think about other coder that maybe see your code in the future. It is even make sense to think about how yourself view this code in the future. It means also that you had to be communicative about engraining your intentions in codebase and make it understandable by the least effort.
So I would say that coding, is not equal to an isolated kind of job anymore (or is it still?)
The other thing is that the problem set given will be more abstract, and new sets of soft skills emerged. Mostly it depends on the how the company works. Based on my experience, softskills that I developed for example:
- Reading and Understanding Codebases: As the new programmer or software engineering, you’ll be more likely spend time in the first or three months understanding the current implementation of the system. Indirectly, you’ll also learn about the business flow itself.
- Maintaining codebases (at least years of lifespan): Maintaining codebase require you to understand the purpose of the codebase itself, and some sort of discipline to keep the code clean according to the company standard.
- Giving constructive feedback during code review
- Collaborating with other fellow programmers
- Mentoring newcomers