1. Working Full Time is Less Stressful Than College.
At least for me, college was a 24/7 activity, and I could not disconnect or simply relax. Now, working full time in a company that values and reinforces work/life balance, I am able to allow myself some slothful time after work and focus on personal hobbies. Currently, I just started a masters degree, mostly reimbursed by the company I work, to fill up the extra free time I currently have and improve my theoretical knowledge in Machine Learning, Pattern Recognition, and Video Processing.
2. Working as a Developer Requires More People Skills Than I Thought
Programming is not 100% of my job. Before being able to start hands-on coding, we need to plan, estimate, and evaluate what it will take to get the job done. Since we work in a team and our work is not only driven by the passion to implement our exciting ideas, but also driven by business, finance, and market strategies to provide as many users requests as possible, we need good communication among all those layers to make things happen. Therefore, good communication skills are essential while trying to understand the whole process and to come to an agreement with all the parties involved in the planning and developing process.
3. The Writing and Linguistics Courses are More Important Than I Thought
Being a Software Engineer is more than just designing and solving problems. There is a lot of writing as well. Here are some examples:
- Writing Documentation: commits, pull requests, wiki pages on GitHub, personal notes with tips and tricks for your own reference in the future, blog posts
- Coding: Coding is writing, knowing a lot of words is extremely helpful. Being able to describe what you are coding is pretty much like writing a descriptive essay in your English 101.
- Presentation: Putting together demos, putting together presentations, writing abstracts to conference talks, exchanging emails, etc
So, this year I have written countless descriptive “essays” in the form of documentation and even coding itself. Clean Code by Robert “Uncle Bob” Martin, has great examples of how coding is analog to writing an essay.
4. It Can Be Hard to See Self-Improvement
As a student, we have a cyclic method of keeping track of progress, called grading. In school, there are also honor awards and scholarships that are things to look up to and boost your confidence when you get one. In the industry, the cyclic tracking of progress can be more tricky and less clear.
5. To Be a More Confident Programmer
Working among humble people made me more confident. Every week, the developers from my team get together to share new topics like unit testing, new C# features, functional programming in F#, and many other fun things. During these meetings, not once but several times, amazing developers would just say out loud “I’m sorry, I don’t understand x,y,z. Can you give me another example?”. That kind of behavior was very empowering for me. Since I felt safe to not understand everything. Therefore, my work environment built up a lot of confidence in me this past year.
6. Pair Programming is Very Efficient
In theory, pair programming can seem like one person does the job while the other is just chilling, at least that’s how I pictured it before practicing it. Surprisingly, for me, pairing is more efficient and harder than working alone. In my opinion, this is the case because you are thinking out loud and explaining what you want to do. When you explain your thoughts to someone, you think it through better. On top of that, the other person brings their perspectives to the table and usually are able to point out things that were missing.
7. To Ask For Help
I enjoy helping and explaining things to other people, but I have a hard time asking for help myself. It almost feels like if I am helped, I’m weak. Fortunately, I am letting go of this mentality and finding that I can achieve great things with help. I also try to reinforce to myself there are others that love helping, and my mentor is one of those people. However, knowing when to ask for help it is also an art, I have not found a formula yet.
8. No Matter How “Young” You are in the Field, You are Able to Impact Others
We all come from different backgrounds. It is either from a different college, another side of the country, or even from a different continent. So naturally, we can learn something new from each other no matter our “seniority”. I have always found joy in helping people to learn, and help them achieve their goals. In college, I achieved that by being the student representative and helping students to get into programs abroad, transfer credits, and etc. In the industry, I found that possible in my first year by getting together with other developers to study design patterns and good development practices. The majority of them had 5 to 15 years experience being a Software Engineer and still, we were all learning new things from each other. Impacting and helping others is not about “seniority”, but little initiatives that enable knowledge sharing.
9. I Love Being a Developer
Within my 250 college credits focused in Mathematics, Computer Science and Computer Engineering, I have learned a lot about theory and how a computer works from logic ports to compilers. On top of that, during my undergrad I questioned myself too many times if I were in the right major – As I mentioned before school was very stressful, my college had a huge drop out rate and a lot of students with depression – I thought of quitting couple times even though I had a high GPA and couple international scholarships behind me – It was just too much stress. This year, I have learned the dynamic of being a Software Developer and I had the opportunity to work for a company that is very supportive and values work-life balance. I have also improved my technical skill such as how to write unit tests, integration tests, do code inspections, debug and analyze crash dumps. Furthermore, my soft skills also improved, and I fell in love with the real nature of my job.
A year from now, I hope this list will be significantly bigger, and I would not be surprised if my perspective evolves in some of these topics. Especially, the one regarding the perception of self-improvement, given that I am trying to compare college metrics with the industry.
What have you learned in your first years out of college?