DEV Community

Cover image for Fail hard, fail often: why only practice counts?

Posted on

Fail hard, fail often: why only practice counts?

Many developers will ask you to master Javascript before starting React, will ask you to master PHP before starting Laravel, to master Python before starting Django. Others will tell you that you are not "real developers" if you don't master design patterns, search algorithms, or if you don't know how to reverse a linked-list. In my opinion, they are wrong.

A developer is just someone who develops.

You must fail to learn.

All the most outstanding entrepreneurs have failed and then bounced back from those failures to become better. The same logic can be applied to development. Experience is the most valuable thing for a developer, and the only way to become more experienced is to practice.

You've just discovered a technology that inspires you: put the documentation on one side, your favorite code editor on the other, and go for it. Your application won't be perfect, but you'll already have completed much more than the person who just read the documentation.

You will fail, your code won't be as clean as you want it to be, but you will have a working project. You will then come back to it and improve it iteratively to make it perfect.

Find your way.

If you've been browsing the development discussion forums or are active on social networks, you've probably encountered many debates about different technologies.

"You shouldn't use PHP; it sucks. ยป
"You shouldn't use Angular; it's outdated. ยป

I believe that technology is only a tool to accomplish something more significant and that technology (or language) should not be an end in itself.

No matter what path you take, if you are good at what you do, then the mission is complete. Explore different technologies, find the most comfortable ones with, and practice, practice, practice, and practice.

Either you will love this technology and master it. Or you'll see the potential flaws, and then you can take another path.

Once you've acquired this mentality of always moving forward and this resilience, you'll get through this no matter what the technology.

Three projects to become a better developer.

You will find below three examples of projects to become a better developer. These projects are, of course, editable and adaptable according to your constraints.

Still, they will allow you to study one (or more) languages from a simple discovery to implementing a real-world project enabling you to deepen advanced concepts.

The Todo-List.

Very well known by developers, the to-do list will allow you to set up relatively simple logic: the creation, modification, and deletion of elements in an index. The great thing about the to-do list is that you can implement it in almost every language.

The Tic-Tac-Toe.

This game, known worldwide, with straightforward logic, will allow you to dig more advanced concepts, in a complete project, by implementing both the sense of the game and a scoreboard or the possibility to play against another player directly online.

The Netflix clone.

The Netflix clone is what I call a real-world application. This project involves many aspects and challenges to deal with: from account creation to video playback, the possibility to add videos from a back office for the site administrators, to the management of statistics. This project is the kind of project that allows you to be hired by a company.

๐Ÿ‘‹๐Ÿป Thank you for reading me; feel free to tell me in the comments what you are currently working on and what you have learned so far.

Discussion (6)

anaveecodes profile image
Ana Vela

Great post! I agree that building projects is essential to getting better as a developer. I've started projects over and learned from each 'failure'. I can recall those moments and build from those experiences. Certain issues and error messages become familiar so debugging gets a little easier. :)

arthureichelberger profile image

Hi Ana! ๐Ÿ‘‹๐Ÿป

Thanks for your reply! Practice makes perfect! :)

krollo profile image
Kat R. • Edited on

While I agree practice is of course important, telling people to jump straight to "industry" projects without a strong command of the foundations is like using a scientific calculator without knowing math or building a magnificent castle on sand. That is what separates the "framework users" from software engineers. Design patterns and algorithms need not be mastered but they need to be understood enough to be proficient. I have seen trial-and-error developers copy and paste code snippets from StackOverflow hoping it would magically fix their problem without understanding what it does wasting countless hours in rage debugging. Granted trial-and-error is part of the process but even that has an efficient and systematic approach to it - a strong foundation.

danytulumidis profile image
Dany Tulumidis

Very good call. Learning by doing is the best way to improve and to learn as a dev. Too often we are fall into the tutorial hell and its hard to escape.. Build things!

arthureichelberger profile image

Hi Dany! ๐Ÿ‘‹๐Ÿป

I agree; moreover, nothing is more satisfying than the feeling of work accomplished at the end of a project!

anasak profile image

"practice, practice, practice and practice"

Merci beaucoup