My journey has been a radical transformation from someone who knew absolutely nothing about this area to someone with a solid foundation, and I'm excited to share every step of it with you in this article. So, let's dive into the concepts I've mastered so far!
Table of Contents
Starting from Scratch
Less than a month ago, I was completely clueless about coding languages, programming, or anything related to coding. I mean, I had a vague notion that it was a profession, and lots of people did it, but for me, it was like, "Developers? How do they even survive? Where do they work? Do they exist for real?" LOL, I was pretty much in the dark.
Then, I attended my first tech event called Frontin Sampa, and something clicked in my head. I decided right then and there: "I'm going to dive into programming and switch up my career." I even shared more details about this journey in this article (it's in Portuguese, by the way).
So, with zero prior knowledge, I embarked on my programming journey armed with a basic roadmap that proved to be incredibly helpful for a newbie like me. The best part? It had loads of free resources to pick up along the way!
In addition to learning the basics of front-end programming, I dedicated myself to understanding the concept of open source, which was one of the talks I watched in the tech event and was completely amazed by.
Another crucial part of my journey was becoming an active member of a tech community. Today, I'm proudly part of He4rt Developers, a thriving community. Inside, we have insightful discussions on important topics, collaborative projects, weekly meetings, and beginner-friendly free projects to work on.
But wait, there's more! From the second week of my studies, I started getting some guidance and exploring more complex topics (well, for those in the know, it's probably not that complex, right?). I had a great grasp of the front-end, but when I ventured into the back-end... oh boy, it was like an avalanche of code.
Moreover, what has encouraged me to study every day is the "100 Days of Code" challenge, created by the He4rt Devs community. This challenge encouraged me to share what I learned and track my progress every day.
In my mentoring sessions, I dived into concepts like HTTP, Linux, the difference between Git and GitHub, and got a brief introduction to database modeling. It might seem like a lot to cover in such a short period, but I managed to grasp the basics, and now I'm going to break it all down for you!
Concepts I've Mastered So Far
Open source
My journey began with exploring the concept of "open source," which is a software licensing model that allows anyone to access the source code. In simpler terms, it means that anyone can tinker with, modify, contribute to, and distribute the code according to the specific terms of its license.
At that point, I thought, "Alright, I get the concept, but show me some examples!" So, I continued my research and learned more about the open-source Linux operating system. Don't worry; I'll talk about Linux in a bit. Another example of open source is the participation of companies, even tech giants, in open source projects and their use of open source software in their daily operations.
Working with open source has its perks, such as transparency, collaboration, and the creation of vibrant communities that work together on projects openly.
The Basics: HTML, CSS and JS
Next up on my journey was diving into the basics of programming, starting with the iconic "hello world." Thanks to that roadmap I mentioned earlier, I knew exactly where to begin. I kicked off my HTML studies with a comprehensive online course, where I learned the coding terminology, the actual code, and how to use it properly to command the desired outcomes. HTML is what lays the foundation of a website. It uses "tags" to define elements like headings, paragraphs, and images, telling the browser how to display them on the page.
Then, I moved on to CSS, which turned out to be one of my favorite parts of the journey. Having the power to change every visual aspect of a website is just mind-blowing, and with each lesson, as I learned something new, I'd experiment to see if it made sense and, of course, if it worked (and it totally does, by the way). CSS is responsible for the look and style of HTML content. With it, you can tweak colors, font sizes, spacing, and even the position of elements on the page, making everything look stunning and organized.
Finally, JavaScript entered the scene, and I thought I'd seen cool stuff before, but this was on another level. JavaScript is what brings a website to life, making it interactive. You can create buttons that do something when clicked, update parts of the page without reloading everything, and so much more.
Documenting My Journey
While I was diving into HTML, I also started online mentoring sessions on other subjects. During these sessions, I learned the importance of taking notes in a bullet-point format as I went along, making it super easy to reference later. I also learned how to create notes in markdown and realized why we see "md" at the end of files like "README.md." Plus, most of these mentorships were conducted in English, which helped me improve my technical vocabulary and conversational skills.
Git and GitHub
In one of my mentoring sessions, we dove into the differences between Git and GitHub, along with the jargon associated with both:
* Git
* Tool for versioning your codebase
* Terminology:
* Repository (project) - getting-started
* Branches (environments inside a project)
* Commits - (changes into the codebase)
* GitHub
* (Cloud Environment) Host the repository
* Issues - Place to discuss bug, glitch, improvements, fixes, ideas or w/e
* Pull Request - Submit changes into the codebase (in different branch/fork)
* Setup my GitHub account
* create a READ.md
* add commits
"Git" is a critical tool for version control that enables developers to collaborate effectively on projects, while "GitHub" is the platform that hosts Git repositories and simplifies teamwork. Learning these tools gave me the ability to contribute to open source projects and share my code with the community.
Linux Basics
The next topic in my mentoring journey was the Linux operating system, which is open source, meaning the source code is freely accessible for anyone to view, modify, and distribute. With this openness, a large community of developers and enthusiasts can contribute to its development and create their own versions based on the Linux kernel. Some popular Linux distributions include Ubuntu, Debian, Red Hat, and CentOS.
Just like with other mentorships, my notes looked something like this:
* Linux 101
* Distributions
* Kernel, Package Manager, Drivers, Tools/Tooling and Shell
* Graphic Environment:
* Gnome (Ubuntu)
* Kubuntu (KDE)
* OS X (Plasma)
* Link to [UnixPorn] (https://www.reddit.com/r/unixporn)
After getting a grasp of the theory, it was time to get hands-on. Using the command "cat .bashrc," I could view all the existing commands. So, I decided to create one more command by accessing "nano .bashrc" and voila!
HTTP Protocol
To wrap up the concepts I've covered, let me explain HTTP, which stands for Hypertext Transfer Protocol. It's the glue that connects the client and server in web interactions. The client could be your web browser, a mobile app, or anything that uses HTTP. The server, on the other hand, is where a request is sent, and a response is received.
Whenever we request data or services from a server, it can respond with status codes represented by numbers. You've probably heard of "404" which means "not found", but there are others like "201 - Created" and "500 - Internal Server Error." During one of my mentoring sessions, I was given a website that showcased all these status codes with kitten memes and a brief description. It was fantastic and helped me grasp each one of those statuses better.
HTTP also uses verbs like "GET" to get information and "POST" to send or publish data to a server. Also, it can work with JSON, a document model usually used for analyzing and transforming data. This makes HTTP a fundamental protocol for all our online activities.
Conclusion
After one month of daily coding, exploring concepts, and engaging in activities, I can confidently say that I've transformed from someone who knew absolutely nothing about this field to someone with a solid foundation. And you know what? I'm thrilled to share all of it with you in this article.
One of my next steps is definitely to hone my practical and technical skills (you know, more coding), and who knows, maybe even apply for a job in this field. The career transition is already underway, and I couldn't be more excited!
Top comments (40)
Nice work, You sound like you're developing quite a broad set of skills which isn't a bad thing!
If you do decide to looking for jobs, I'd recommend you pick a single discipline that you really enjoy out of everything you've done so far and double down on that focus. This will help set you apart and you also won't be shooting in the dark for opportunities.
Looks like you are on the right path!! ππ
Although most of us survive on the web, I think important also for you to explore programming independently of the language in this beginning. Give your self some play time as well to write for example a simple command line program in JS that uses simple concepts; then try for example do it in python, or another language you may have interesting into. Using Linux mean you you also have pretty much any language at your disposal to try out, even dotnet and Swift.
Play around and be flexible, Focus on web to land a job in the industry, and later on you can change to whatever you want. The important thing is to always be learning π
Really nice progress! Itβs awesome to see such inspiring stories
Hope to see more progress from you
Pretty solid article and effort. Always great to hear the journeys of new devs and how they decided to enter the industry. Even 25+ years into it, I'm still constantly learning new stuff which is why I love this industry.
While the web is ubiquitous and probably the easiest entry point for a new dev, I'd highly recommend trying to decouple your skills from it by experimenting with a few other domains once you've got your bearings. Even if it's just mobile or desktop development it's absolutely worth it.
Great progress, yet most of things will need you to be very good at 1 set of skills, we would advice you to go full stack, yet pick 1 thing to master on backend and 1 thing on frontend, either for good job opportunity or to build your own at bytebricks.ai we use Javascript (Node.js & Vue Js) and PHP (Laravel) primarly, that gets covered even by 1 developer with no problem
There will always be people that will try to put you down hiding behind a "criticism mask". Truth is, only you know the effort you've been putting into learning and becoming each time more proficient on this. This was such a pleasant read, and I hope you keep sharing your progress with the community.
awesome progress so far!
enjoy the process because the learning never stops in this field lol
Speak her!! (Fala delaa)
loved to see your progress! thank you for sharing it with us! <3
Nice article Cami, congratulations on your dedication and progress β¨β¨
Some comments may only be visible to logged-in visitors. Sign in to view all comments. Some comments have been hidden by the post's author - find out more