FrontEnd Developers vs. BackEnd Developers vs. FullStack Developers

FrontEnd Developers vs. BackEnd Developers vs. FullStack Developers

When it comes to developers, there are typically two groups to choose from FrontEnd developers and BackEnd developers or Full-Stack Developer. In this post, we’re going to look at the differences of each in terms of description, skills, programming languages, and earnings to help you in your decision. Should You Be a Back-End, Front-End or Full-Stack Developer?

FrontEnd and BackEnd are two most popular terms used in web development. These terms are very crucial for web development but are quite different from each other. Each side needs to communicate and operate effectively with the other as a single unit to improve the website’s functionality.

When it comes to developers, there are typically two groups to choose from FrontEnd developers and BackEnd developers or Full-Stack Developer. In this post, we’re going to look at the differences of each in terms of description, skills, programming languages, and earnings to help you in your decision. Should You Be a Back-End, Front-End or Full-Stack Developer?

FrontEnd vs. BackEnd - Developers

FrontEnd Development:

The part of a website that user interacts with directly is termed as front end. It is also referred to as the ‘client side’ of the application. It includes everything that users experience directly: text colors and styles, images, graphs and tables, buttons, colors, and navigation menu. HTML, CSS, and Javascript are the languages used for Front End development. The structure, design, behavior, and content of everything seen on browser screen when websites, web applications, or mobile apps are opened up, is implemented by front End developers. Responsiveness and performance are two main objectives of the front End. The developer must ensure that the site is responsive i.e. it appears correctly on devices of all sizes no part of the website should behave abnormally irrespective of the size of the screen.

BackEnd Development:

Backend is server side of the website. It stores and arranges data, and also makes sure everything on the client-side of the website works fine. It is the part of the website that you cannot see and interact with. It is the portion of software that does not come in direct contact with the users. The parts and characteristics developed by backend designers are indirectly accessed by users through a front-end application. Activities, like writing APIs, creating libraries, and working with system components without user interfaces or even systems of scientific programming, are also included in the backend.

  • Frontend developers build how a website looks.
  • Backend developers build how a website works

Let’s say that you wanted to build a WordPress website for your business. The frontend developer would create the theme: the images, style, and presentation. While the backend developer may work on managing the database, as well as the site’s users, security, and site performance issues.

FrontEnd vs. BackEnd - Programming Languages

FrontEnd Languages:

The front end portion is built by using some languages which are discussed below:

  • HTML: HTML stands for Hyper Text Markup Language. It is used to design the front end portion of web pages using markup language. HTML is the combination of Hypertext and Markup language. Hypertext defines the link between the web pages. The markup language is used to define the text documentation within tag which defines the structure of web pages.
  • CSS: Cascading Style Sheets fondly referred to as CSS is a simply designed language intended to simplify the process of making web pages presentable. CSS allows you to apply styles to web pages. More importantly, CSS enables you to do this independent of the HTML that makes up each web page.
  • JavaScript: JavaScript is a famous scripting language used to create the magic on the sites to make the site interactive for the user. It is used to enhancing the functionality of a website to running cool games and web-based software.

BackEnd Languages:

The back end portion is built by using some languages which are discussed below:

  • PHP: PHP is a server-side scripting language designed specifically for web development. Since PHP code executed on the server side so it is called server-side scripting language.
  • C++: It is a general purpose programming language and widely used now a days for competitive programming. It is also used as backend language.
  • Java: Java is one of the most popular and widely used programming language and platform. It is highly scalable. Java components are easily available.
  • **Python:**Python is a programming language that lets you work quickly and integrate systems more efficiently.
  • JavaScript: Javascript can be used as both (front end and back end) programming languages.
  • Node.js: Node.js is an open source and cross-platform runtime environment for executing JavaScript code outside of a browser. You need to remember that NodeJS is not a framework and it’s not a programming language. Most of the people are confused and understand it’s a framework or a programming language. We often use Node.js for building back-end services like APIs like Web App or Mobile App. It’s used in production by large companies such as Paypal, Uber, Netflix, Wallmart and so on.
FrontEnd vs. BackEnd - Frameworks and Libraries:

FrontEnd Frameworks and Libraries:

  • AngularJS: AngularJs is a JavaScript open source front-end framework that is mainly used to develop single page web applications(SPAs). It is a continuously growing and expanding framework which provides better ways for developing web applications. It changes the static HTML to dynamic HTML. It is an open source project which can be freely used and changed by anyone. It extends HTML attributes with Directives, and data is bound with HTML.
  • React.js: React is a declarative, efficient, and flexible JavaScript library for building user interfaces. ReactJS is an open-source, component-based front end library responsible only for the view layer of the application. It is maintained by Facebook.
    Bootstrap: Bootstrap is a free and open-source tool collection for creating responsive websites and web applications. It is the most popular HTML, CSS, and JavaScript framework for developing responsive, mobile-first web sites.
  • jQuery: jQuery is an open source JavaScript library that simplifies the interactions between an HTML/CSS document, or more precisely the Document Object Model (DOM), and JavaScript. Elaborating the terms, jQuery simplifies HTML document traversing and manipulation, browser event handling, DOM animations, Ajax interactions, and cross-browser JavaScript development.
  • SASS: It is the most reliable, mature and robust CSS extension language. It is used to extend the functionality of an existing CSS of a site including everything from variables, inheritance, and nesting with ease.
  • Some other libraries and frameworks are: Semantic-UI, Foundation, Materialize, Backbone.js, Express.js, Ember.js etc.

BackEnd Frameworks:

  • The list of back end frameworks are: Express, Django, Rails, Laravel, Spring, etc.
  • The other back end program/scripting languages are: C#, Ruby, REST, GO etc.

Skills

So what kind of skills does a frontend developer need versus a backend developer?

FrontEnd developers work on the appearance and user-interface of the website, and so in addition to the programming languages listed above, the frontend dev should have some skills using design tools like PhotoShop, Sketch or Figma. Frontend developers should also know the basics of web hosting, and buying a domain.

BackEnd developers, on the other hand, need to have critical thinking skills. A backend dev is often debugging code, as well as designing systems for how the user will interact with the website. Questions the backend dev should be able to answer: Where is data stored? Is it stored securely? If the site’s traffic 100x’s overnight, will the site be able to scale without crashing? How can I add a new feature to the website, without breaking the current functionality? How can I test a website (often on a staging platform, and/or running tests using test-driven development) so that the end-user experiences as few errors and bugs as possible?

Education

If you want to be a freelancer or start your own company, you may be able to forgo the format university route and self-educate through online courses. So long as you can deliver proven, you do not need to show a degree to make a living. If you are starting completely from scratch, you may need to develop a few projects on your own. This way your portfolio can demonstrate your experience to your first couple of clients. A strong portfolio is especially important for front-end developers.

Regardless of if you are looking to become a front-end or backend developer: I’d suggest you learn HTML and CSS. These two languages are very powerful (and not too difficult to learn) and are the basis of all web development.

Salary

FrontEnd: $70,000 USD. With a range from $56k to $111k. And an hourly rate of around $50/hour.

BackEnd dev: $117,000 USD. With a range from $100k to $140k. And an hourly rate of around $65/hour.

The salaries can vary dramatically based on your experience (noted by junior, lead, and senior titles) and based on your specialties. Specialties also have an effect on salary, as noted by the difference in salary between a senior Javascript web developer who outearns the senior frontend developer.

So if you’re looking to hire a dev, you really must do your homework (aka. take time to review the developer’s portfolio, interview, and ask for references from past employers) in order to find the right match.

Cost of Hiring Developers

A developer can charge different amounts based on a variety of factors. Here are a few of the top reasons:

  • Whether you are a freelance developer, contractor, part-time, or full-time employee.
  • Your specialties as a developer — the programming languages you are most proficient in, the tools you are most familiar with, etc.
  • Whether you are able to interact directly with the customer, have project management skills, and are able to manage a team.
  • If you are a freelance developer or contractor, the network you use to offer your services through.
  • Where you live and where you work from (telecommute or in-house).
  • How much education you have in your specialty.
  • The amount of experience you have working in your field.
  • How long you have worked at a particular company as a part-time or full-time employee.
What is a Full-Stack Developer

People who have skill in both frontend and backend development are often referred to as full stack developers. In other words, they have a full range of skills that can be applied to the user interface and everything that makes it work in the background.

As a developer, having both frontend and backend proficiency means more opportunities. You will be able to apply to more contract, part-time, or full-time employment positions. As a freelancer, you will be able to take on more projects without being limited to frontend only or backend only.

From the customer or employer perspective, you will be able to understand projects as a whole. Both how it needs to work for the user and how it needs to work in the background. You will give them one point of contact for all of their needs. And you will be able to support them when things go wrong on either side. This makes you even more valuable over the long term.

Should You Be a Back-End, Front-End or Full-Stack Developer?

Thank you for reading ! Stay tuned for awesome.

13 Best Visual Studio Code Extensions for Frontend Development

13 Best Visual Studio Code Extensions for Frontend Development

Up your Visual Studio Code Extensions with these helpful tools for frontend development.

Visual Studio Code continues to be a widely popular IDE for developers. I started using it two years ago, and in my opinion, it’s a fantastic code editor. It allows me to customize it just the way I want. VS Code also has a build-in git integration and terminal, so you don’t have to jump from one window to another.

There are tones of plugins and even themes, where everyone can find something that he or she needs. The proper setup of VSC can improve our productivity; also, there are some plugins that will help developers to create better, clean code.

Because there are so many plugins that can be used for Visual Studio Code, it’s easy to get lost and forget about some useful extensions. This is the reason I would like to share with you my favorite extensions for VSC for frontend development.

You may also like: Top 8 Trends and Tools Front-End JavaScript for 2020.

1. HTML Snippets (Visual Studio Code HTML Snippets)

This is an essential extension for every frontend developer. You don’t have to waste more time for writing every HTML tag manually; it’s enough to put only tag name like div and press enter. Or you can even add a few tags which you would like to be nested like ul>li>a and press enter. What’s important, this extension has all HTML5 snippets.

2. JavaScript (ES6) Code Snippets

In the previous section, you could notice that snippets are handy and can help to prevent lots of spelling bugs and can make coding much faster. Each frontend developer works mostly with JavaScript. To speed up my JavaScript coding, I use JavaScript code snippets. It also supports .ts, .tsx, and .jsx files.

Here, it works similarly. For example, to create  export default class ClassName {} code it’s enough to type ecl and press tab. Easy, right? To find out more code shortcuts take a look at the extension documentation.

3. CSS Peek

As we have something for HTML and something for Javascript, something for CSS would be also useful for frontend development. CSS Peek is an extension supporting .html and .js files. It helps to quickly find and check styles applied for selected class or id. It’s beneficial for developers who don’t like to switch between different files or split the screen.

4. Angular, React and Vue

Since we're talking code snippets, it would also be good to mention extensions for each of these widely popular frontend frameworks.

For Angular, there is an extension called** Angular Snippets (Version 8)** because currently, we have Angular 8, but Angular has a new release for every version of the framework. It provides us code snippets for Typescript and HTML.

For React.js, there is an excellent extension,** ES7 React/Redux/GraphQL/React-Native snippets**.It provides code snippets for React and Redux using ES7, and it works in a similar way to JavaScript snippets with tab button.

For Vue.js development, there is a great extension called **Vetur. **It has almost 20 million downloads, and it brings a lot of functionalities like code snippets, linking and errors checking, formatting, debugging or highlighting the syntax. It looks very impressive.

You may also like: Angular vs React vs Vue: Which one will be popular in 2020.

5. ESLint

If you want to create a friendly, readable, clean code, it’s a great idea to install ESLint into your VS Code. This will help you to stick to standard practices like indentation, for example.

6. Prettier – Code Formatter

If we talk about pretty code, it’s worth to install the Prettier extension in your code editor. Prettier is excellent, especially if you are working on the project with other developers. It removes original styling and puts on the consistent code style. Thanks to consistent formatting the code is much more readable.

7. GitLens

As I mentioned at the beginning, Visual Studio Code has a git integration. We can make it even better by installing GitLens extension. It allows users to check who created each line of code when it was created. It also allows us to go to commit details quickly. It’s beneficial in case of working in a team of developers to understand the code history easily.

8. Auto Import

Auto import is a great extension which automatically imports files; you don’t have to do it manually anymore. It’s excellent primarily if you work on a component-based project. It’s enough to put the component name, and the plugin will import it.

9. Path Autocomplete

There is another great extension which will help you if you need to import something manually or add a link to a different file. Path autocomplete extension provides paths completion. While you start typing your path probably with **./ **you will notice a dropdown with folders to select. It’s crazy helpful because you don’t have to dig in your files and search the correct path.

10. Final Newline

Sometimes you have to remember about adding a new line to your document, and final-newline comes with a helping hand here. Every time you will save the file, it will insert a new line at the end of the document.

11. Bracket Pair Colorizer

Bracket pair colorizer helps us to find the closing bracket of the current block of code. It sometimes happens that at the end of your file or function, you have more than one or two closing brackets, and it’s not so easy to find the correct one then. If you are using the Bracket Pair Colorizer plugin, every starting and closing bracket has the same color for one block of code. So if your opening tag is blue, your closing tag will be blue as well.

12. Indenticator

Indeticator is an extension for VS Code which visually highlights current intend depth. It allows distinguishing easily different levels of a different block of codes. Depth is marked with small dots and lines.

13. Debugger for Chrome

And at the end an excellent plugin for debugging. Wouldn’t it be perfect if we could debug in the console like in the Chrome browser? It’s possible with Debugger for Chrome plugin; it supports setting breakpoints, stepping, debugging evil scripts, and more. If you are tired of switching from files in the code editor to debugging console in the browser, it’s a great plugin for you.

Conclusion

In the above article, I shared with you my favorite extensions for Visual Studio Code. I hope you it’s a great tip on how to set your code editor and improve your performance of your development. Also, if you are a beginner, it may help you to focus on learning programming then on looking for a closing tag, or closing bracket.

Happy coding! Thank for reading !

Top 10 Best VS Code Extensions for Frontend Developers (2020)

Top 10 Best VS Code Extensions for Frontend Developers (2020)

Visual Studio Code is an amazing code editor. It's open source and the community support and extensions are awesome.I will recommend 10 VS Code extensions for frontend engineers working with HTML, CSS, JavaScript and frameworks like VueJS or ReactJS.

Visual Studio Code had 2.6 millions monthly active users in 2017 (the last official number I could find — it’s certainly more by now) and is arguably the best code editor out there at the moment. One of the best features is the Market Place offering tons of extensions to customize it exactly to your needs and helping you in writing high quality code. In this article I will recommend 10 VS Code extensions for frontend engineers working with HTML, CSS, JavaScript and frameworks like VueJS or ReactJS.

JavaScript Code Snippets

This extension was created by Charalampos Karypidis and has been downloaded 4.5 million times. It provides Code Snippets for writing JavaScript, Typescript, React, Vue, HHTML, …and it supports ES6 syntax.

NPM

Every developer knows NPM — the Node Package Manager. This extension helps you manage your Package.json, provides warnings if dependencies are not installed yet, and helps with version control.

Prettier

Prettier from Esben Petersen is a pretty neat extension that has been downloaded close to 14 million times. It helps you formatting your code and provides color keywords for more readable code.

CSS Peek

CSS Peak helps you when working markup language class strings and IDs by identifying and enumerating the different styles that are already applied. This comes handy because you no longer have to jump between HTML and CSS files.

Vetur

Vetur is the official VueJS Extension and has been downloaded more than 20 million times. It provides error checking capabilities, auto-completion features and provides Vue snippets. This is really cool if you are a Vue developer like me!

ESLint

ESLint — what can I say. Many people love linting, many do not. But the value linting provides for clean code is hardly arguable and this extension with 24 million downloads is the best tool for it if you develop with JavaScript.

Live Sass Compiler

The Live Sass Compiler extension is a small but powerful tool that can compile your SASS/SCSS files to CSS files in real time and provide a live preview of the compiled styles in your browser.

Debugger for Chrome

Chrome for many developers is the number one browser when it comes to developing, testing and debugging their code. With this official extension for VS Code you can do so directly from Visual Studio Code — how cool is that?!

Live Server

Live Server by Ritwick Dey, who also created Live Sass Compiler, creates a local development server right in Visual Studio Code to serve your static and dynamic sites. Using the go-live button in your editor you can serve your code right away and the extension also supports live reloading — neat!

Beautify

Last but not least in this collection comes Beautify, another great extension for code formatting much like Prettier. Almost 12 million downloads speak for themselves and you can format code written in JavaScript, JSON, CSS, Sass and HTML.

Conclusion

This collection is far from complete and the extensions are not necessarily the best but I hope it provides you with some good tools to help you write high quality code and become a better web developer. Let me know in the comments if you find something useful or have other suggestions of extensions you think are first class.

I Wish I Had Read These 29 Things Before I Started Programming

I Wish I Had Read These 29 Things Before I Started Programming

I Wish I Had Read These 29 Things Before I Started Programming. You Don't Need a Degree to Program, but You Do Need the Knowledge. Programming Takes Creativity on Top of Problem-Solving Skills. You Can't Learn Everything There Is to Learn. You Don't Need to Be a Robot. Programming Is All About Applying Knowledge...

Programming is not an easy career. With many people graduating each year from top computer science programs in the country, it’s one of the most competitive careers anyone can embark on. At the same time, a programming career is exciting. With the advancement of technology, every day, there are innovations in the industry. Programming becomes a passionate endeavor for those who love it.

When I started as a programmer years ago, I wish someone sat me down and told me everything on this list. This list can save any new programmer a lot of headaches and energy. This list can be the one you refer to as your programming career progresses. Even if some of these points might not be relevant for you right now, one day you will see the wisdom in them.

As a programmer, you are at the cusp of greatness.

You just have to venture on with a little bit of knowledge about your path.

1. You Don’t Need a Degree to Program, but You Do Need the Knowledge

I worked with many programmers who didn’t graduate with a computer science master’s degree or an undergraduate degree in computer science. Programming is one of the few careers you can have that doesn’t depend on a degree. However, programming is a knowledge-intensive career. You have to read those ten essential books if you’re going to start a career in programming. These ten books will cover the essential concepts of computer science as well as how to work on project teams. Setting a firm foundation for your technical skills, with a solid understanding of the basic concepts, on top of writing functional code, will enable you to ace technical interviews and communicate with your co-workers.

2. Programming Takes Creativity on Top of Problem-Solving Skills

Most people have the preconception that programming is all about analytical and problem-solving skills. That is partially true. Programming also involves a lot of creativity. Often, there are many ways to write a given piece of code. The creativity comes when you devise ways to code most simply and effectively.

3. You Can’t Learn Everything There Is to Learn. The Trick Is to Learn a Few Things Very Well

There are hundreds of programming languages out there. There are areas of programming that pave the way for particular career paths: web developer, front-end developer, back-end developer, software engineer, database developer, etc. Decide what kind of developer you want to be, then learn all the technologies and skillsets needed for that particular position.

4. You Don’t Need to Be a Robot. It’s Better If You Are Human

Remember you are a human first and a programmer second. It’s easy to get lost in your code when you first start to program. There are days when I don’t leave my computer until I’ve completed all the milestones of my project. But you are a human being; you need to laugh, cry, de-stress and talk to people. By managing your life to maximize fun and excitement outside of work, you will bring more creativity into your work as a programmer.

5. Programming Is All About Applying Knowledge. It’s Not About Memorization

Unlike research, where you are inventing and creating new areas of knowledge, programming is all about applying existing knowledge. Books, research papers, online articles, and learning videos become resources that you will use often. There’s no need to memorize anything. You can always reach for a resource to find the answer. Memorization comes automatically and naturally as you work on more projects.

6. You Will Deal With Imposter Syndrome Every Day

Programming is the one career all the “smart” people seem to gravitate towards. Unless you are a genius, you will, like I do, experience imposter syndrome every day. When you experience it every day, you tend to figure out a way to deal with it. For me, I’ve always used it as motivation to learn new things. I’ve learned to put it into perspective and just be content at improving a little bit each day.

7. You Have to Have a Life Outside of Being a Programmer. Otherwise, You’ll Just Be Addicted to Programming

There will be times when you are a hermit at home. However, to be a happy programmer, you have to proactively seek a life outside your computer screen. Often the success of your career depends on the people you meet. Networking is essential when you are a programmer. Having a personality outside of being a programmer is essential to keep yourself from being addicted to programming. When you can enjoy your passions without being compelled to do it, your best work comes out.

8. You’ll Learn Programming Faster If You Pair Program With Someone

At the beginning of your career, you’ll be tempted to close your door to the world and read those ten books on programming to build your computer science foundations. Guess what? You learn much faster if you find a buddy. I’ve gone through programming books in half the time working on a project with a buddy. When you pair program with someone, all your programming “warts” come out. Your code will be critiqued. You will learn to write efficient code because someone else is watching. You will want to find out the best way to do things because your buddy is learning too. When you work as a programmer, someone’s always reviewing your code. You are never programming alone. It’s time to get used to that.

9. You Don’t Need to Be Good at Math and Science

In the technology industry, you will meet all kinds of superstar programmers who found the logical thinking aspect of programming appealing after a lifetime of liberal arts education. There are plenty of painters and writers who make a living programming while pursuing art on the side. All you need to be a good programmer is persistence. Programming is hard work. But once you have that, anyone can go through programming books and pick up the basics. There are plenty of people who pick up math after working in the industry for a while. Eventually, these people can even understand complex algorithms and implement them without any kind of formal math education.

10. You Need to Be an All-Star “Learner”

A programmer is a master learner. You might not start out being a master learner. But you will get there. Sometimes your workplace will ask you to pick up three programming languages in six months. That’s the state of technology innovation. As programmers, we learn every day. Learning is like breathing. If you are uncomfortable with learning every day, you will be forced to get used to that.

11. You Will Obsess About Finishing Your Projects

Coding addiction is a real thing. At some point in your programming career, you will experience all-night programming marathons. You won’t want to go to sleep until you’ve finished your milestones. You’ll forget to eat, drink, or even get up from your desk because your brain is processing so much information. That is okay. Once you are done, take a walk outside. Go on vacation.

12. You Will Spend All Day Looking for One Tiny Bug

Most of the time, on programming projects, many pieces are interdependent on one another. Often, you will find that you cannot move on unless you’ve fixed one tiny bug that’s been lurking in your system. As a programmer, you will stress about the entire project unless you find this bug. You will sit at your computer all day looking for it. You will dream about the code at night until you find it.

13. You Will Spend Most of Your Time Googling for Answers That No One Can Answer for You

If you program in a popular language, you’ll be able to find the answers to most of the problems you encounter online. However, there are exceptions. Sometimes, no one has encountered the problems you bumped into. In this case, referring to programming books and asking around on programming boards often will point you in the right direction.

14. You Will Read a Design Pattern Book

It doesn’t matter if you graduated from the best computer science program in the country. There comes a time in every programmer’s career that you will sit down and read Head First Design Patterns from cover to cover. It’s probably one of the most read books for a new programmer. So, what are you waiting for? Pick it up and read it from cover to cover.

15. You Will Learn to Obsess About the Exact Spelling

At some point in every programmer’s career, you will have written enough code in your favorite language to want to do things your way. This includes the exact spelling of naming conventions that you give to your variables, your classes, and even the tables in your databases. You will scrutinize this to no end. The last thing you want is some bug that crept up because you misspelled a name. Remember, it’s okay to obsess about things if you have a good reason for it. When you don’t have a good reason for it, it’s just repetitive behavior.

16. You Will Give Up

How many times have I given up? I can’t even count. Sometimes you just bump into problems you can’t solve. Sometimes it gets so difficult that you just want to quit. Sometimes work environments make you want to quit. Your passions depend on your persistence. This is when you are tested. Are you here to stay or are you going to go? I always came back. Sometimes, after a few years of not programming a single line, I always came back as a new person ready to tackle a project. This is when you know you love your work. It’s when it becomes a home, a springboard for your adventures.

17. You Will Restart

If you believe in higher powers, you will be able to relate to this. Each time, when I see people come back to programming, it’s never about the money. It’s always for the love of programming. When you see someone who enjoys programming like you used to, you are envious. You can’t let it go. Then, suddenly, you are back pursuing a project. You know in your core that you live and breathe code. This is when you know that you are a true programmer.

18. You Will Go Back to Some Form of School to Learn the “Correct” Way of Doing Things

Even the best programmers graduating from elite computer science master’s programs will continue their education at work. In fact, on the job training is one of the best perks of working for large technology companies. Companies will send you on “expensive” courses and seminars to train you in the latest technologies they want you to use. If by chance, you’re still not learning enough at work, you will reach out to the many online coding academies and youtube videos to sharpen your skillsets.

19. You Will Be Hired by Someone You Don’t Want to Work For

Even if you are a mediocre programmer, there will come a time when certain companies will need your skills. When they are interviewing you, try to remember that you are interviewing them too. Depending on the company’s culture, you might find yourself wanting to say “no” to a cushy package. As a programmer, you will work long hours. It’s almost critical to find a company culture that you can fit into. Happiness leads to better work. If your skills are in demand, other companies will knock on your door. Please do not settle unless it’s necessary.

20. You Will Flunk a Technical Interview

Technical interviews are no joke. Senior programmers often make up technical interview questions for fun. Often, these questions are extra difficult for a reason. If you flunk the technical interview, it’s not the end of the world. It certainly does not say anything about your programming abilities. It only tests your knowledge base. Try to look on the bright side. If your people skills shine, managers will remember you. If they like you and you are not a fit for this role, they might still call you for another position.

21. You Will Be Told That You Are Great

At times in your career, you will feel like you are a star. Managers who depend on you to complete their projects will tell you how great you are to motivate you. You will feel like you are on top of the world. Remember that they are appealing to your ego. Stay grounded. There are always new technologies to learn. There are always new programmers who are better than you.

22. You Will Be Told That You Don’t Know Anything

At times in your career, you will feel like you don’t know anything. Someone who is frustrated with the project will make it a point to tell you that you don’t know anything. Perhaps they do this to put you in your place. But, since you are reading this, you will take it in stride. Because you probably know a lot more than you think you do. Each day that passes, you will learn a little more than the day before. After a year, people will look up to you. Keep at it. After some time, you may even gain the respect of the person who told you that you don’t know anything.

23. You Will Want to Compete With Other Programmers Who You Admire

One of the most awesome aspects of programming is competition. I love programming with people who I admire. When you can write code that a programmer you admire deems worthy, you will feel like you just won the lottery. Competition in programming is always in good fun. It’s not about who’s the best. It’s more about learning from each other.

24. You Will Not Understand a Word That Your Coworkers Just Said

In the beginning, this may happen once a week or once a month. At your new programming job, you will not understand what your coworker just said. This could be for two reasons. For the life of you, you just can’t get your head around their accent. In this case, ask another coworker to translate. There’s no shame in not being able to understand someone’s speech. Chances are, it took other coworkers years to get used to the accent too. The other reason is that what your coworker just said went completely over your head. That is also okay. After all, your coworker is the expert. Ask your coworker to explain it all in picture form. You’re going to want to pull up a chair for this. Chances are, it might take a while.

25. You Will Feel Shame Looking at the Spaghetti Code You Wrote Last Year

This happens all the time. I was criticized for my Perl code when I started. It was well-documented code that’s designed well, too. But I wrote it in a language that was difficult to read. So, I wrote the spaghetti code. But, each year, no matter how hard I try, I still find some spaghetti code that I whipped up quickly to get a job done. That’s what programmers do. We fix things and we patch things up. There’s no shame in that. When you realize that it’s you who wrote it, just step back and fix it if you can.

26. You Will Take Shelter in Your Database Projects When You Are Too Sick to Look at Another Line of Code

This happens when you’re on a nice programming trek up the mountain. It’s been two months. You need a break. But you love the momentum so you keep going. Then you realize that SQL is fun. You can’t figure out why you can’t look at another line of code. But somehow, putting data into the database and getting it out is now a joyful event. You revel in the simplicity of a completely logical language.

27. You Will Both Love and Hate Hackathons

Hackathons are common these days. Programmers get into teams and compete with each other. In the process, it’s intense learning in a few hours. You will love the hackathons for the camaraderie. You will hate it for the carpal tunnel syndrome that you developed while typing at top speed. You will also hate it for the crowded rooms that you work in and the sensory overstimulation that you receive during the event.

28. You Will Think You Don’t Understand a Word of English While Reading Research Papers

Do you speak English? Well, most people will say yes. But, I guarantee you that you will read some research paper over and over again and realize that it’s way over your head. For me, most of the research papers on algorithms seemed like a giant forest before I learned the foundations of college math. Then, suddenly, it all seemed to make sense.

29. You Will Buy Headphones

At some point in your career, you will realize that any kind of noise impedes your senses when you’re intensely focused on your code. Having good headphones that will cancel out external noise will allow you to work in crowded rooms with focus. At some point, you will also find that music helps you to code. I found out early in my coding career that the rhythm in music helps me code fluidly. Even now, I reach for some music when I need to be productive.

You may also like: 7 Skills of Highly Effective Programmer for Developers.

In hindsight, I’m actually really happy that I was so naive in the beginning. Knowing so little back then gave me the motivation to think critically about everything I learned later on.

Now I get to spend time helping other people achieve their goals through code. What could be better than that? Share what you think.

Happy coding !