Day 1 - Where to start?
Tags: 100daysofcode, git, linux, python
Published: 2020-11-06 09:23:21

**DAY 1 - Where to start?**

The #100DaysofCode was one of the goals which I've pushed back several times in the past either due to some time constrains or looming workloads that I was handling back then. There were actually instances where I've began the challenge but somehow ended stopping it just after a week because, well simply, I did not knew enough before.

What I mean to say is, my way of learning was never a structured one where I don't go over the fundamentals of some skill and instead jump straight onto what's just necessary to come up with the solution for the problem at hand. While this is an efficient method to get things working quickly, this is not sustainable and soon the lack of foundations will catch up on you. You might just realize that you might have completed one problem but cannot resolve it once it breaks again.

# You just cannot skip the process.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/pubvsbstxjtu3mfx9wlo.jpg)

Another thing which have always served like an impediment is my thought process.

I was young then, with little experience but so much excitement and tenacity to jump into challenges without first going over what's really needed. I'm telling you, as  a kid it was fun to just tackle at everything the world throws at you because well, that's just how kids deal with things. No BS, no needing to complicate things. Just plain fun. But as an adult or at least a 20-something adult, you cannot just grab a problem and solve it
without examining it carefully because one, there are consequences to our every action.

No matter how minute we think the effect will be, the real problem lies when the effects began to cascade and roll down like a snowball on a steep snowy mountain. One day you think you won't need to learn data structures and algorithms because you've come with a script that you've just patched from several sources from the internet, the next day you come face to face with a problem that has not been raised in Stack Overflow yet.


![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/6gbkl2fx126zes1dtl3g.jpg)


You just cannot skip the process. You might find it takes more time so learn something but hey, you don't move mountains through some brute force. Instead, you break Everest into its smallest parts and then move it, one stone at a time.

#Moving places

Now I've hopped into positions where I was either just partially qualified or simply not qualified at all. I guess it was the eagerness and tenacity that always gets me the job, but I have learned that the basics always come up from time to time when you're troubleshooting some issue and you're back into the internet searching the basics again.

Alright, maybe I'm just exaggerating when I say I never bother to learn the fundamentals of anything. I did started from the very basics of networking when I re-learn and studied for my CCNA last year. It was a fulfilling experience to actually learn subnetting, how networks work, and how routing is done for data to reach its destination. But I know it just one of the foundations that an IT professional should have. 

And as I go discover more about the realms of devops, I've come to accept that I should be learning not just networking if I want to succeed as a devops or cloud engineer. Which is why I started learning Linux last February.

It became useful when I moved to my current job where I handle some of the network management systems. Those NMS tools are all hosted on Red Hat 7 Linux servers, which I was lucky enough to play around with (well I play around mostly on the lab servers as it's a BIG NO to practice on production servers)


![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/3eeaikpsebyczms45qel.jpg)


Alright, I guess that's enough on the story and the memes. I've also spent an hour already researching on what niche I'll focus on and of course on the awesome memes I'll put in here. So far I've narrowed down my checklist:

1. Standardize my naming conventions - yeah, I guess this is more of a trivial matter but I think it'll be helpful in the long run especially if I ever come back and check my early files.

2. Linux - I still consider myself relatively new with this but I feel more confident now working in Linux servers and in my Linux VMs even though it's been a couple of months since I first dived into the concepts of Linux. Another good playground for Linux is KodeKloud. Head over to www.kodekloud-engineer.com, set up an account, and complete your first System Admin task now!
	
3. Git - I already have a git account before and I've learned how to work in my local repository but what I don't know yet is how to work with Github. So yeah, Day 1 is for Git and Github. For this, I'll be using a Coursera Guided Project, Git for Developers Using Github, which you can find on this link- https://www.coursera.org/learn/git-for-developers-using-github/
	
4. Python - With so many languages to choose from, I decided to lock on to Python for I guess the first 50 days. This would include solving problems in Hackerrank and actually working on projects. This is a language that is very close to me and I had this on-and-off relationship with Python where I will focus intensely in doing python stuffs for some period and then just stop either because there's some workload that I need to put attention to, or because I was focusing on preparing for some certification exam. I'll be using a coursera course which you can find here - https://www.coursera.org/professional-certificates/google-it-automation

#Google IT Automation with Python Professional

To start with re-learning Python the proper way, I'm starting with a Coursera Professional course, Google IT Automation with Python Professional, which is composed of 6 courses. The site suggests that it can be completed within 8 months if you set 4 hour/week as study time. Since I plan to do this every day, including the weekends, and I max up the videos to 2x speed, I aim to finish the whole professional course in two month's time. What I intend to give more time on is on the practice challenges. 
	
Now this is still a rough draft and if you've read in the bullet for Python, this is just a plan for first half of the 100 days. For the second half, I intend to begin a Udemy course, The Complete 2020 Web Development Bootcamp.

Now you might ask that 50 days is too short for that course, I'll just finish what I can during the 50th up to 100th day. And whatever is remaining, I'll continue on my next 100DaysofCode.

To sum it all up, I guess this #100DaysofCode challenge is more of a consistency challenge for me. I'd like to fully commit myself on something until I reach the point of mastery. Of course, it would take more than a 100 days to become an expert on something, but these 100 days can definitely set the path towards it.

Also, I'm not really sure on where I'll post this as I just recently started a Twitter and Instagram account.

I guess I'll do both but I found out twitter has some character limit on the tweets so I may break this post into parts, post the first half as the main tweet and the rest on the comment, or I can just do cross-posts in dev.to or hashnode. My only issue would be if all the images that I put in here will appear when I post them in hashnode or dev.to. As for instagram, yeah, I have not really searched it yet.

And yeah, one last thing, my succeeding posts or tweets will probably be shorter than this. Just updates on how the challenge went for the day. And then I guess I'll just create a summary on each month-end as checkpoint and post it in dev.to/hasnode/freecodecamp.

Alright. So Day 1, where to  start?
Yeah. On Git!

____________________________________________

{% user jeden %}