FAQ

Here we can find some commonly asked FAQs by the junior web developers in the early stage of their career.

How to learn something new every day as a Software Developer?
How to Improve your Debugging Skills?
What are the things are important other than programming?
Free and Professional Design Tools
Programming Languages Web Developers Should Learn
Use of Javascript in web development
Libraries and Frameworks for Front-end Developers
Front-end to Full-stack Developer

How to learn something new every day as a Software Developer?

As software developers, we must be willing to learn continuously. While it helps us accomplish our day-to-day tasks at work, it is equally important to stay up to date with new technologies and innovations.

TL;DR

Become a better learner and developer by:

  1. Be an Active Part of the Developer Community
  2. Start Your Own Blog (or Something Equivalent)
  3. Build Some Side Projects

Be an Active Part of the Developer Community: When we focus all our attention on something, learning becomes easy. The challenging part, though, is to know what to learn. Where should we find help? Is there a better way to solve certain problems? How do we not reinvent the wheel? And finally, how do we make it happen continuously? Being part of one or more developer communities in your areas of interest helps solve these challenges in a significant way. Don’t worry if you do not have anything to contribute in the early days. Just hang in there and soak up information, connect with like-minded people, observe best practices, and so on. You will eventually contribute, and that comes naturally.

Here are the developer communities, learning platforms, and social media outlets that I’ve found immensely helpful. MediumLinkedIn, MDNRedditHackernoon, CSS-TricksCode NewbieWomen who code, daily.dev, DZone, dev.to, HashNode, Free code campStackOverflow, and Hackernews are some of them.

Start Your Own Blog (or Something Equivalent): Teaching and sharing knowledge is the best way to gain more knowledge. It is a universal truth that you can not teach a topic well without learning it well. Having a technology blog (or something like a YouTube channel) can help you participate in the learning-sharing cycle. If you are thinking about starting a blog with your own domain, check out Hashnode. It has everything you need as a blogging platform, and it is free. If you have an existing domain, you can map that to it too. So give it a try. Alternatively, you can publish on dev.toHackernoon, and other communities I mentioned above. You can also apply to become a writer on freeCodeCamp News.

Build Some Side Projects: An effective way to polish your learning and fuel your passion is by doing side projects. In many cases, you may not be able to work on any technology you like at work. But no one can stop you from doing a side project using that tech. – courtesy

How to Improve your Debugging Skills?

Whether you are a beginner or expert software developer, you probably find bugs in your code. We all have bugs in our applications because no one knows everything about coding, and we sometimes make mistakes. After all, there is no way to stop being human. We can only study ourselves, our tools, and our bugs to find solutions that can help us be more efficient in reducing the bugs we create.

There are three major ways to deal with bugs:

  1. Prebugging: the reduction of bugs before they’re created
  2. Debugging: identifying, fixing, and removing bugs once you find them
  3. Post-debugging: expecting unexpected or unknown bugs

What is Prebugging? ‌‌The late computer scientist Edsger W. Dijkstra said,

“If debugging is the process of removing bugs, then programming must be the process of putting them in.”

If we introduce bugs to a program through programming, that means we need to guide ourselves to reduce the number of bugs we introduce. I call this process of guiding ourselves “Prebugging”.

The definition got me thinking because I am sure a lot of software developers are proactive about debugging. They improve their tools and themselves to reduce the number of bugs they create in the first place.

  • Write program specs.‌‌
  • Learn to really understand the tools you use.‌
  • Learn to type accurately.‌
  • Familiarize yourself with error messages and their probable solutions.‌‌
  • Always make sure you have setups that are stable for most of the tools you use.‌‌

What is Debugging? Debugging is at the core of programming, because it takes up the largest percentage of your time while coding. There are three major phases involved in debugging:

  • Finding bugs
  • Analyzing and understanding why bugs occur.
  • Fixing or removing bugs.

What is Post-debugging? “Post-debugging” is about anticipating unexpected bugs in programs you’ve already written. – courtesy

What are the things are important other than programming?

Best IDE or Code Editor: First, you should learn how to use Visual Studio Code, which is a source code editor. It is a free and powerful tool. In the beginning, I recommend learning some of the basic shortcuts and installing some of the extensions like ESlint, Prettier, or Live Server. Here’s a free, full-length course on the freeCodeCamp YouTube channel to get you started.

The Command Line: Next, you need to know about the Command-Line. You should learn what it is, and some of the basic commands like how to move around directories, how to create a new directory, or how to create a new file. Here’s a great article on how to use Bash, the Linux command line. And here’s one one that’ll help you use the command line more effectively.

Version Control – Git and GitHub: No matter what you do, as a developer, you need to know about Git. Git is a Version Control system used for tracking changes. It is usually used with GitHub, which is a code hosting platform. In the be ginning, learning Git might be overwhelming, therefore you just need to know some of the basics like how to create a new Repository, how to clone a project, how to make a new commit, and how to pull and push the new changes. One of the best ways to practice Git is by working in a team. There, you need to know how to create a new branch, how to make pull requests, and how to resolve conflicts. Here’s a great Git and GitHub crash course on the freeCodeCamp YouTube channel to get you going with version control. – courtesy

Free and Professional Design Tools

Figma is a design tool and is free to use for individuals. But here I want to talk about how to use Figma as a developer. As a developer, you might get designs from designers on your team. With Figma you can inspect the code of the elements and measure the layout. Therefore, you need to know how to read Figma design, like how to get the color, typography, or spacing right. Here’s an article about various design tools, Figma included. And here’s a fun tutorial about creating 3D sketches in Figma.

Programming Languages Web Developers Should Learn

HTML and CSS: Let’s jump to the first two languages that you need to know to build a website: HTML and CSS.

HTML stands for Hypertext Markup Language. It it is used to build the skeleton for your website. HTML is not difficult to learn, but you might want to pay more attention to HTML forms as they will be fundamental in the future.

CSS stands for Cascading Style Sheets. This is a markup language but I also consider it to be a programming language. CSS is not necessarily difficult to learn but it’s difficult to master.

Here’s a full handbook that’ll teach you all the basics of HTML. And here’s a complete course on CSS on the freeCodeCamp YouTube channel that’ll get you started beautifying your sites. When you know the basics of HTML and CSS, the next step is to build some basic websites. For example, you can try a Homepagea Form like a login page or a checkout page. You can even build a Portfolio. You can find example projects on DevChallenges.io.

JavaScript : JavaScript is the Programming Language for the Web. It can update and change both HTML and CSS. JavaScript can also calculate, manipulate and validate data.

Use of Javascript in web development

JavaScript : JavaScript is a popular programming language and is widely used for Web Development, among other things. You will need to learn some of the basic features of the language like Data Types, Loops, and Conditionals. Then there are topics that you will want to dive deeper into. First, we have debugging. This is the process of finding and fixing errors. Here’s a great in-depth guide to bug squashing to get you started. Then there are other topics like Objects, Primitives, and Arrays. Especially when working with Arrays, you need to know about Array methods as well. Functions are the main building blocks in your program. So make sure that you don’t overlook them. One of my favorite features in JavaScript is de-structuring  it is easy to write and makes the language super powerful.

Like C#, Java, or other programming languages, in modern JavaScript we also have classes. These are useful when it comes to Object-Oriented Programming and the SOLID principles. And no matter how good you are with programming, you will have errors in your scripts. This means you’ll want to know about Error handling as well. Asynchronous programming is important, especially when you need to communicate with the server. So spend some time learning about Promises and Async/Await.

JavaScript – Browser: First, you need to know what a Document Object Model or DOM is. Then you need to know how to get elements, how to change the classes, or how to change the style with JavaScript. Here’s a good introduction to the JS DOM, and here’s a guide on how to manipulate the DOM (you’ll learn by building a project). You also need to learn about different User Interface Events like click, mouse over, mouse down, and so on. And, you’ll also want to pay more attention to Forms in JavaScript as they have many events and properties.

JavaScript – Other features: The Fetch API is an important topic. It lets you send network requests to servers. This is useful, for example, when we need to submit a form or get a user’s information. Another important topic is Storing Data in the browser. Here you need to know what the differences are between Cookies, LocalStorage, and sessionStorage. Other less important topics when you are just getting started are Regular expressions, Web Components, and Websockets. Regular expressions are used to search and replace text. Web Components, are a new thing but you should totally check them out. Lastly, we have Websockets. They are useful when you need to have continuous data exchanges like in chat applications. So after learning Javascript, you might want to spend some time to learn about TypeScript. I love TypeScript as it gives me a safe feeling while writing code. TypeScript provides static typing, that allows you to catch errors earlier in the debugging process. It also saves your time as it finds bugs before the code runs. Here’s a helpful post on TypeScript types to help you think about them the right way.

Libraries and Frameworks for Front-end Developers

So let’s start with Sass, which is a preprocessor scripting language. I use Sass in almost every one of my projects. It makes the CSS look cleaner and makes it faster to develop. Here’s a full course on Sass that’ll teach you how to give your CSS superpowers. Next, we have NPM which is a package manager for JavaScript programming. This allows you to install different packages on your machine quickly. Contentful is a Headless Content Management System or CMS. It’s different from a traditional CMS, as you can store data in Contentful and use it for your front end.

And to get a frontend job, you need to know at least one frontend Framework. I personally would choose React. We’ll talk about other frameworks later. Besides learning the basics of React, you also want to pay attention to how State is managed in React applications and how Forms work in React. Once you’ve learned some basics, you can solidify your skills by building a bunch of projects with React in this YouTube course. Next.js is used for server-side rendering or generating static websites. And yes, Next.js is still quite new, but I do believe that this is the skill we must have as React developers. You can learn all the Next.js basics in this in-depth handbook.

After learning these tools, you also might want to take a look at Material UI which is a React component library, or Tailwind CSS which is a CSS framework that helps you speed up your work when prototyping or freelancing, for example. You can start by building some simple reusable components to understand how React works. And you can find example projects on DevChallenges.io. If your job requires you to know Vue.jsAngular or even Svelte you can spend some time learning those tools, too. It should not be too difficult once you already know React.

Front-end to Full-stack Developer

If you want to continue to become a Full-stack developer, you can start by learning Node.js and Express. Here, you need to how to build a RESTful API and you can use MongoDB when working with databases. Which is quite simple to learn when you already know JavaScript. After that, if you want to learn more, you can look into GraphQL which is a data query and manipulation language for APIs. Personally, I would also spend some time learning PostgreSQL. Compared to MongoDB, it’s a bit more difficult to learn as you need to learn about SQL as well. After learning these tools, you can practice by building applications like an Image UploaderAuthentication, or Chat Room. You can also find these projects on Devchallenges.io.