DEV Community

Cover image for Lessons Learned Too Late: Reflecting on University Regrets
Yllen Fernandez
Yllen Fernandez

Posted on

Lessons Learned Too Late: Reflecting on University Regrets

Hi Coder

I know this is a normal feeling, but after graduating from university, I started to reflect on the 4-year training and thought that I didn't accomplish as much as I would have wanted to. Even though [some] universities do a great job at training students as engineers, I have to admit that many of them do little to no training on how to self-promote our work. In this article, I want to share with you what I would've done differently if I had to start over again with my software engineering undergrad.

As a disclaimer, I want to mention that by no means this is extensive research, this is, in fact, based on my experience as a software engineer. I learned the hard way that I needed to put out my work and I want you to be confident enough with your skillset and learn more by building, sharing, and networking.

Without further ado, let's dive into the things I wish I would've done in university to get more confident with my skills, promote my work, and eventually make it easier to land a job.

1. Build your own website

I know this sounds overrated, but doing so allows you to have a little place online that's YOURS, will not fall into obscurity and only you decide how it looks. I still remember when the social platform Hi5 was popular in Latin America. Everybody would personalize their profile, make it cute, would spend countless hours working on it, but guess what? other platforms took over and hi5 was forgotten. It may sound difficult to think about Instagram going out of business or becoming unpopular, but that's what happens with most platforms. With this in mind, build your own website, make it as unique as you want, or get inspired by other people's style but BUILD it.

You may use Wix, Webflow, WordPress, etc, to build your website and that's totally valid because they allow you to put it together much faster. And if you don't know what style to go for, they offer different templates that you can use. I'd suggest you build it from scratch using libraries like Bootstrap because it is much cheaper and also allows you to explore different technologies. The sky is the limit when it comes to coding your own projects. Whether you want to go for the prebuilt website or coding it from scratch, it's up to you, they are both great ideas.

I've spent many hours checking out amazing websites. Here are some of my favorites, I hope they encourage you to get started now:

They are all unique in different ways, they showcase the developer's style. You have a style too, and you can create a website that reflects your personality and interests even if you get inspired by others. In his book "Show Your Work" Austin Kleon says:

"If you are really interested in sharing your work and expressing yourself, nothing beats owning your own space online, a place that you control, a place that no one can take away from you"

2. Work tirelessly on projects

The million-dollar question might be, what should you build? The million-dollar answer is, ANYTHING. I've heard and read many times that in order to become a good developer, one has to build projects, and that's true. But what people often forget is that nothing comes from nothing, you need to copy others in order to get new ideas. You will never build the program that many people will want to use unless you start by building a typical to-do list app.

Have freedom to fail | Mark Zuckerberg - YouTube

Mark Zuckerberg Harvard Commencement speech.About new ideas, success, working towards your dreams and what creates true happiness.Think big, create purpose, ...

favicon youtube.com

That being said if you have any specific project in mind that you want to build for yourself, do it! Go for it, don't let your inner saboteur tell you that is not useful and that nobody will pay attention or hire you, because that is simply not true. I've heard that:

"Quantity has a quality of its own"

And I believe it, you will never know how you good are unless you allow yourself to be bad.

Here's a list of projects that I find creative and challenging. You may build along with the developer and modify the project to add different or better features:

Build what has been created, build what has not been created, build small and big projects. Use different programming languages, get out of your comfort zone, ask for help, get stuck, ask ChatGPT, but build! And share your projects on different platforms (more on this later.)

3. Document your code

You will be surprised to come back to your project after a few months of not writing a single line of code to see how much you've forgotten. Even more so if you are working with a completely different stack or programming language. That's why I highly recommend you to document your code.

def add(a, b):
    """
    Add two numbers together.

    Args:
        a (int): The first number.
        b (int): The second number.

    Returns:
        int: The sum of the two numbers.
    """
    return a + b

Enter fullscreen mode Exit fullscreen mode
def add(a, b):
    # This function adds two numbers
    return a + b

Enter fullscreen mode Exit fullscreen mode

The images from above show well-documented and poorly-documented pieces of code. I hope you can get an idea of why it is better to do it well from the very beginning and not months later, it will make your work as a developer much easier. Along with documenting your code, you can use markdown documentation too. Not only does it look good on your GitHub, but it gives you a more human-like approach to your code and your eyes will be pleased to go through it when needed. Here's an example of markdown documentation that I like; I know GoDot is a professional piece of software (a game engine) and they can afford to have a bunch of people writing beautiful markdowns, but you can create beautiful documentation too.

GoDot engine markdown documentation

I also encourage you to read this short article by Victoria Drake on how to write documentation, it is incredibly useful.

4. Get an internship

To make your time in university a lot more interesting and worthwhile, you need to find an internship. Getting a job as a junior developer can be a daunting and time-consuming task. But you will probably have a better outcome if you manage to turn an internship into a job offer.

The process of landing an internship goes beyond the scope of this article, therefore I'll list a number of websites that you can check out to learn more about internships and jobs:

Keep in mind that your university may have a list of companies that already employed your fellow students, student employment, career fairs, etc. Take advantage of that! Apply, and don't be afraid of being rejected, once you land that internship, it will be much easier to land others. But you need to actively look for it because, unfortunately, it will not find for you.

5. Show your work!

Some productivity gurus suggest staying out of social media, or at least avoiding it as much as possible. I'd say that there's value in joining communities, even if it's online, to show your work. If you can manage to join an in-person community where you can meet developers or tech people to collaborate with them, that'd be fantastic. But if you can't, I'd highly recommend joining X (Twitter), LinkedIn and/or Discord communities. People like showing what they're succeeding in and some might be willing to help you learn how to create content for different platforms. Conversely, you can watch them doing it, plus reading books, and articles and listen to podcasts on how to build in public.

Austin Kleon is better at putting together encouraging words than me,

"Imagine if your next boss didn't have to read your resume because he already reads your blog. Imagine being a student and getting your first gig based on a school project you posted online"

In a world where social media has democratized who and what gets to be promoted, you should try to harness it as much as you can. Put out work, you are better than you think, furthermore, you will get better the more you do it. Let me say it again, you will never be good unless allow yourself to be bad.

It's better to be "bad" at coding and receive feedback than to never build anything out of fear of being judged. If you struggle to muster the courage, consider visiting a museum and appreciating artwork. Pablo Picasso honed his talent through building, painting, and creating. You'll be astonished by the number of things he produced throughout his lifetime. He was prolific.

Don't let fear think that you are not good at something, you will get good at it, so go build now, show your progress and the final result!

Bonus - Attend hackathons, tech events, and meetups

Attending events is a great way to meet new people and see what others are building. Recently, the Free and Open Source Developers' European Meeting, or FOSDEM took place in Brussels. This is a free event for software developers to meet, collaborate, share ideas, etc. People from all over the world gather there and the best part is that there's no need to register to join.

There are a lot of these events, even in small cities. Hackathons will allow you to meet experienced people who are working on interesting projects, learn about certain industries' needs, network, etc. Even if you just learned how to write your first "Hello world" there'll be people there to encourage you to keep on working. Being exposed to a team or company that does what you want to do is priceless; people like talking, and people like giving pieces of advice, if you can be there to absorb good information from the best, do it.

In his book "How to Learn to Code and Get a Developer Job", the founder of FreeCodeCamp, Quincy Larson said that one of the best ways to build your reputation as a developer is to attend hackathons.

Hackathons can lead to many things: befriending interesting people, learning more about challenging projects, and potentially getting a job. So, with this in mind, I bet you are googling the next hackathon near you now, right?

Final thoughts

My goal is to help you avoid the mistakes I made while in university. You may perceive 3 or 4 years of training as a long time, but in reality, it passes by super fast. You will surely learn a lot from your professors, fellow students, and other sources. However, the most effective way to test your knowledge and pave the way for a successful career during and after university is to start building ambitious, well-documented coding projects NOW.

Coding doesn't have to be a lonely journey. Engage with communities, find accountability partners, share your work, and start building. By doing it now, you'll be ahead of the game laterโ€”trust me.

Top comments (13)

Collapse
 
reinhart1010 profile image
Reinhart Previano K. • Edited

Great post! As I, too, have similar regrets and regret that my classmates were doing certain things, Iโ€™d like to suggest a couple more things:

1. Do not always rely to whatโ€™s being taught in classes.

I have actually faced a few friends who wants to limit themselves to the tech stacks as taught in the classes. For example, they do not want to use Git because Git is not taught in classes.

Thatโ€™s complacency, and many of the materials in class sessions are only taught once, as you are expected to discover and expand your skills beyond whatโ€™s being taught. At least one person have expressed his regrets about Git after finding for an internship.

2. Do not always dedicate yourself in one specialized skills (e.g. React).

Definitely love the โ€œbe an engineer, not a frameworkerโ€ statement.

Collapse
 
opensourceyllen profile image
Yllen Fernandez

Thank you so much for taking the time to read and leave a comment, I really appreciate it! As engineers, we aim to adapt to this fast-paced industry.

Collapse
 
ben profile image
Ben Halpern

Thanks for sharing

Collapse
 
mrlinxed profile image
Mr. Linxed

Great article. Good starting points for those new to the scene.

(PS: there is such a thing as too many comments, that add method didn't need any comments to explain what it was doing, but I get the point you're making ๐Ÿ˜œ)

Collapse
 
dagnelies profile image
Arnaud Dagnelies

You forgot the most important things: have fun, make friends and learn. ๐Ÿ˜‰ ... Afterwards, you'll spend the whole time coding at work anyway.

Collapse
 
harry_wood profile image
Harry Wood • Edited

Agreed. I think it's important to have fun, but specifically I'd say find a way to have fun with the stuff that seems boring on your university course.

Admittedly that's about my personal regrets. I had plenty of fun drinking too much, but I think back to how bored/miserable I was about learning Haskell for example, and I realise it should have been really interesting, and I only wish I had the time to learn such things these days. I even felt bored about doing a group project to build a website, which is what I went on to love doing!

Collapse
 
opensourceyllen profile image
Yllen Fernandez

Having fun is one of the most important parts of this career path. It is hard, it is demanding but creating quality + beautiful software should also be enjoyable!

Collapse
 
kaamkiya profile image
Kaamkiya

Thanks for sharing :)

Collapse
 
opensourceyllen profile image
Yllen Fernandez

Thanks for your comment!

Collapse
 
techvision profile image
Tech Vision

Thank you for this excellent post. I believe that the advice provided in it can be applied to developers of all levels of experience.

The tech industry has some very intelligent and talented individuals, which can sometimes make you feel intimidated. As a result, many of us developers experience imposter syndrome, and we can be a bit hesitant to share and show our work.

From experience, here are three facts that I hope will convince you to show your work:

  1. Most developer communities are centred around helping each other out. Just join a community and check for yourself. You might even find that you're the one helping others.
  2. No one knows everything, regardless of where you are in your career. There is always something to learn and something to teach.
  3. I have found that the smartest people I have worked with do not judge you if you make mistakes; they help you fix them and will share their knowledge with you.
Collapse
 
opensourceyllen profile image
Yllen Fernandez

Thank you very much for your comment. I wish someone would've told me this while in university. Most of the time I'd read "Be unique, build cool things" but I did not know what unique and cool were until I started copying others. :)

Collapse
 
matteosant_dev profile image
Matteo Santoro Dev

Thanks for mentioning my website.

Collapse
 
opensourceyllen profile image
Yllen Fernandez

I had a great time looking at your website, you did a great job when building it!