Categories
Uncategorized

Learning on the Job and Learning In School

Over the past year or so, I’ve been alternating between being a full-time software engineering intern for roughly three months and then back to being a full-time computer science student for roughly three months. 

I’ve completed two separate internships and five different classes. It has been a challenging year, both personally and professionally, but it’s also been a time of immense growth and learning.

Recently I’ve been reflecting on the differences between the learning opportunities that I’ve had at work in contrast to those that I’ve had in doing my coursework. Both have their advantages and disadvantages as well as many similarities.

 However, I think that considering the difference between learning on the job and learning in the classroom has helped me make the most of whichever learning environment I find myself in.

The first thing I’d like to discuss is the resources that are available to you when looking to solve a problem. 

If you look up something in the middle of an exam, or you copy some code on a project without citing it, that is a potential violation of academic integrity and you could be in a lot of trouble. 

At work, it is substantially more difficult to do my job or complete any tasks without looking up potential approaches and copying code to either reuse it or tweak it slightly for your own purposes.

Learning from peers and mentors is a very valuable and effective way of furthering your education and skills as a software engineer. 

It has also been an important part of my academic journey but I have found that my computer science program’s format, being completely online and asynchronous, has not been conducive to creating these opportunities to learn. 

In contrast, during my internship, I was lucky enough to have a very effective and generous mentor who was dedicated to helping me succeed in addition to many teammates and peers who were very helpful as well.

The second thing is the available time. My internships have both been roughly 35-40 hours a week, Monday through Friday. Throughout my computer science degree, I’ve mostly been taking eight credits which is two classes a semester. 

There have been some weeks that I spend more than 35-40 hours on my schoolwork but there are many weeks I spend much less time than that. 

Sometimes that is due to a relatively light course load or it is because at different points I’ve also been working a full-time job alongside my classes, not to mention the many other demands that being a human being in 2022 places on your time and energy.

During my internships, I am getting paid to learn and develop my skills and solve problems 35-40 hours a week every week. I’ve been able to dedicate significantly more time to honing my craft because I have a set schedule as well as the incentive of being able to earn a relatively comfortable living. 

Money is a powerful incentive, but there are also other incentives that are very important that are present in the workplace and absent in the classroom. 

When I complete an academic assignment, my main incentive is to learn or get a good grade or pass the class. I don’t have to worry about the long-term implications of maintaining it because more often than not, I have to move on to the next assignment.

In contrast, there is a strong incentive to build systems that are well designed, well tested, and more easily maintainable because it has a significant impact on your wellbeing as the sucker who has to live with this codebase day in and day out. You and your team could have their jobs made much harder by a messy codebase and there are many other long-term consequences such as technical debt and tears and wasted time. 

Any rational human is probably going to spend much more time and care in designing, implementing, and testing an application they will be dealing with for the next year as opposed to one that they’ll never see again after a week. 

I want to conclude by saying that I don’t necessarily think that it’s easier or better or more effective to learn at work as opposed to the classroom.

There are definitely times where one or the other is a much better tool for the job of learning and I think they’re both made more effective when they’re paired together. 

I hope that sharing some of my experiences will help you in deciding which learning experience is right for you at the moment you’re making these decisions on which opportunity to pursue in what is hopefully a lifelong and fruitful learning journey.

 Thanks for reading and please share any thoughts you might have on the subject in the comments section.

Best wishes,

Amin