DEV Community

CamiKuro.js
CamiKuro.js

Posted on

What I've learnt in 1 month of programming

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!

roadmap image

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 
Enter fullscreen mode Exit fullscreen mode

"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)
Enter fullscreen mode Exit fullscreen mode

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.

201 - Created cat meme

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)

Collapse
 
barrymichaeldoyle profile image
Barry Michael Doyle

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.

Collapse
 
raibtoffoletto profile image
Raí B. Toffoletto

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 😁

Collapse
 
cherryramatis profile image
Cherry Ramatis

Really nice progress! It’s awesome to see such inspiring stories

Hope to see more progress from you

Collapse
 
tensorprogramming profile image
Tensor-Programming • Edited

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.

Collapse
 
bytebricks profile image
ByteBricks.ai

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

Collapse
 
oteacherjoao profile image
Teacher João da He4rt

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.

Collapse
 
johnwritescode_ profile image
ツ John

awesome progress so far!
enjoy the process because the learning never stops in this field lol

Collapse
 
nandosts profile image
Fernando Melo • Edited

Speak her!! (Fala delaa)

Collapse
 
mels profile image
Melina Schneider

loved to see your progress! thank you for sharing it with us! <3

Collapse
 
fransborges profile image
Fran Borges

Nice article Cami, congratulations on your dedication and progress ✨✨

Collapse
 
gcasa profile image
Gregory Casamento

Really great article. I loved the progress you made. Welcome!!!

Collapse
 
fr_jess profile image
Jessica

Congrats for the new journey! It's really interesting to read about what you have learn and I hope you will continue to share!

Collapse
 
john79_ profile image
Info Comment hidden by post author - thread only accessible via permalink
John

I don't usually write harsh comments but from the first paragraph this article is a joke.

"Someone with solid foundation", "What I have mastered so far", Javascript being in the "basics"...
I am sorry but this is a clear case of Dunnen-Kruger effect. You don't know how much you don't know.
How can you have SOLID foundation or mastered anything in a month?

I myself have always been considered talented by peers and have been doing web development for 20+ years, and yet I keep studying everyday.

At work we are very selective. Only ~10% of junior candidates (4-5 years of working experience) we interview pass our coding technical interviews.
Still, everyday at work seniors spend half the day coaching them and fixing their mistakes, that sometimes cause troubles to the codebase scalability and maintainability or to the business itself.

Software engineers are not an esoteric elite or anything, anyone can get be at least mediocre with years of experience. I am myself self-taught, but some humility should apply.
Never read anything this pretentious.

Collapse
 
danielhe4rt profile image
Daniel Reis

Just let the girl write her stuff, dude. We know she's a beginner and she's just trying to put into words what she's learned in this first month. WE KNOW she's not a master at anything.

geez

Collapse
 
john79_ profile image
John

Internet, this public square where everybody can say anything out loud... and it seems like I can't even complain or give a wake up call.

Collapse
 
oteacherjoao profile image
Teacher João da He4rt

You must be a miserable human being for wasting your time writing such a comment. Either that or you have no idea of what figurative language or what a hyperbole is.

Collapse
 
dannyengelman profile image
Danny Engelman

Programming is soo 2022
All you have to learn are concepts, and ChatGPT will do the work

Collapse
 
gcasa profile image
Gregory Casamento

ChatGPT makes far too many mistakes to be a replacement for a professional developer. A tool most certainly. What to watch out for is what is coming 5-10 years from now.

Collapse
 
dannyengelman profile image
Danny Engelman

She is a junior in my team, already does 50% ofmy work

Collapse
 
gulshan212 profile image
Gulshan Negi

Thanks a lot for sharing it here with us.
Well, one thing that I will also prefer that is understanding of logics and keeping focus on basics and fundamentals of programming that help in learning any programming languages.

I prefer and follow this concept.
Thanks

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