Lessons learnt from building and deploying a portfolio website
Tags: beginners, django, webdev, career
Published: 2019-09-10 09:23:32

>"Experience is the best teacher."

I started making my portfolio site as a means of getting out of tutorial purgatory that had plagued me for a long time. True to the statement above and as it has been widely preached, getting your hands dirty by building a real-world project is a sure way to get your foot in the door in software development. 
I chose my starter project as a portfolio site and the experience left a tremendous impact on me. Here are just a few of the insights gained.

###Discovering my passion.
When I started making the site, the initial goal was to display some of the data science projects I had done. At the time I was really into data science and analytics as it had been lauded as 
>"The sexiest career of the 21st century"

However, as I was making the web app( I chose Django to begin with), I started questioning myself as to whether I enjoyed data science as much as I thought or was it the hype surrounding the field that pushed me in that direction. Did I envision myself doing it for the rest of my life?  

The more and more I made the backend for my web app, the more I noticed that I was actually excited and enjoyed software engineering as opposed to my previous passion. Needless to say, I am still an enthusiast of data analytics and I'm sure the knowledge gained from all the practise won't go to waste. However, we all have different paths to success. 

Without experimenting with different domains, I wouldn't have found my home. Probably things might change in future and that's the beauty of knowledge. You never stop learning.

###Focusing on my strengths.
>"How will I juggle all these technologies?"

This is a question I asked myself a lot while starting my computer science degree. With the constant inflow of information, it became very confusing to choose what to pick up and what to drop. Mixed with the fear that leaving one tech stack would make me not good enough for the job market, contributed to being one hot mess. 
Soon though, someone just told me to pick up one thing and just go with it. So I chose the Python programming language and made the site with Django. Was I perfect in HTML? No. So I chose to ask a friend to help with the front end as I concentrate on the backend. Needless to say, with time, I picked up those skills I didn't have and I realised that all good things take time. Focus on one thing at a time.


###Opportunity for growth.
So here I am with the finished project's file on my computer. Feeling proud of my small win. Then I started thinking. "What next?" 
The next phase was obviously deployment. So this brings a whole new world you didn't know existed. With this I look into web servers, how to choose hosting providers, differentiating Nginx and apache 😂. It was all very hectic at first, but again, I remembered, all good things take time. 
This tutorial I did early this year should help you when you get to this stage. 
{% link lewiskori/deploying-a-python-django-application-using-docker-3d09 %}

For anyone starting their journey into programming, remember to enjoy the process of continuous learning and learn one thing at a time. Eventually, you'll become like that guru you admire. I for starters, I'm not yet there, but again, good things take time.

What's one project you feel made you get an interest in software engineering?
Drop your experience in the comments section below.

If you enjoyed this post, subscribe to my [newsletter](https://mailchi.mp/c42286076bd8/lewiskori) or get in touch on [twitter](https://twitter.com/lewis_kihiu) for a chat any time.