Become a good programmer: The keys to excel in the different fields of programming!

Last updated August 21, 2023 at 07:10 AM

The ultimate guide to becoming a talented programmer. From novice to pro, follow these 6 ways to become a programming expert in your chosen field!

Becoming a programmer is a cumulative process that builds up your skills day by day and year by year, and programming can be fun and rewarding (mentally, spiritually, and financially).

This guide does not promise to give a magically easy way to become a programmer but you will get a general overview on how to become a programmer in any of the modern programming fields.

6 ways to become a good programmer

Becoming a good developer varies according to the specialties one chooses in the development of applications.

Each means represents a specialty. We have the following areas:

  • web development
  • desktop application programming
  • Programming distributed applications
  • library programming
  • System development
  • Scientific development

To be a good programmer supposes that one is good in at least one of the specialties which exist including those which are quoted.

In this section, we will develop each of the specialties and give indications to be good in each of them.

Before becoming a good developer, you must first apprendre to become it. We'll start the section by giving you a guide to mastering the basics of programming.

How to become a developer

1. Take an introductory course in one (or both) of the following disciplines:

  • Logic
  • Discrete mathematics

2. Learn concepts such as tables, views/queries and database procedures.

You can use any database software, like:

  • MS Access
  • DB V
  • Fox pro
  • paradox
  • MySQL: which is a good database to learn because it's free, commonly used, and databases are commonly accessed with SQL queries

3. Decide what type of programmer you want to be. Programmers generally fall into one of the following categories:

  • Web programmer
  • Desktop application developer
    • Operating system (OS) oriented programmer (linked to a single operating system or a set of operating systems)
    • Embedded platform programmer
  • Distributed application developer
  • Library / Platform / Frame / Heart Developer
  • System Developer
    • kernel / kernel programmer
    • Driver programmer
    • Compiler programmer
  • scientific programmer

4. Learn the technologies and programming languages ​​related to your area of ​​programming choice.

The following sections break down the tasks for different types of programming.

Footnotes: Knowledge of English is essential in this field, at least you must be able to read and fully understand a text written in English


To become a good web developer

1. Know what web programming entails.

Web applications are software components designed to operate on top of the internet architecture.

This means that the applications are accessed through web browser software such as Firefox or Internet Explorer.

Web applications do not necessarily require an internet connection. This means that web applications are built on standard web technologies such as:

  • HTTP
  • FTP
  • POP3
  • SMTP
  • TCP
  • IP
  • HTML
  • XML
  • Coldfusion
  • ASP
  • JSP
  • PHP

2. Browse many diverse sites to learn more about how they usually look like. (Right-click, then click View Source or press F12.)

Look for diversity in site type/content, not quantity of websites visited.

Generally, you will need to visit at least one of each of the following types of websites:

  • Business presence sites (commercial companies, and non-profit businesses / organizations, non-governmental organizations)
  • Web indexing engines (search engines, meta search sites, specialized search engines, directories)
  • Data mining sites
  • Personal sites
  • Information / Encyclopedic Pages (wikis, datasheets, technical specifications and manuals listing directories, blogs and journals, news and news sites, yellow pages, etc.)
  • Social sites (social portals, bookmarking sites, note taking sites)
  • Collaborative sites (this includes other categories mentioned above, such as wikis and blogs)

3. Learn at least one brainstorming technique/method and the software used to implement it.

For example: brainstorming diagrams and MS Visio (implementation software).

4. Familiarize yourself with site structuring

It is the creation of conceptual web diagrams, site-maps, and navigational structures.

5. Take a crash course in graphic design.

Try to learn at least graphics editing / graphics manipulation software (optional, but highly recommended).

6. Learn the basics of Internet infrastructure.

This implies having bases on:

  • Basic web service protocols (HTTP, FTP, SMTP and POP3 or IMAP4)
  • Web server software (preferably for the platform you will be working on often)
  • Web browsing software.
  • Mail server and its client software

7. Learn HTML and CSS languages.

You can also get “What You See Is What You Get (WYSIWYG)” type HTML editing software. (What you see is what you get).

8. Learn XML and related XML technologies, such as XSL and XPath (optional but recommended).

9. Create simple static websites until you are familiar with and comfortable with HTML.

10. Learn a client-side scripting language.

Most developers learn JavaScript. Some learn VBScript, but it is not compatible with most browsers.

11. Familiarize yourself with the client-side scripting language you learned.

Try to reach your potential using only this programming language.

Only go to the next step after you are at least familiar with your client-side scripting language.

12. Learn at least one server-side programming language.

If you choose to limit yourself to server software, learn one of the programming languages ​​supported by that software.

If not, learn at least one programming language on each server software.

13. Create a pilot project for yourself when you have finished learning the server side programming language.

14. Create your own website online and start experimenting with what you have learned on your own pages.

To become a good desktop application programmer

Job - IT Developer LARAVEL: PHP (M: F) - Job

1. Know what you gain from programming desktop applications. 

Many programmers write desktop code for business solutions, so getting an idea of ​​what a company, their organizational and financial structure will be a great time saver.

2. Have knowledge of the different hardware architectures of a computer.

An introductory course in digital circuit design and another in computer architecture is helpful;

However, some consider this to be too advanced as a starting point, so reading two or three tutorial articles might suffice.

Then you can come back to this step later, after learning your first programming language.

3. Learn a (mini-) programming language (programming language for children).

Don't be shy to learn this language because you are tall.

These programming languages ​​can greatly save you the learning pains. However, this step is optional. It can also be performed before the previous step.

4. Learn introduction to procedural, object-oriented, and functional programming paradigms.

5. Take an introductory course in one of the procedural programming languages.

No matter what language you choose to be your language of choice later on, you will need procedural programming at some level.

Also, procedural programming is reported by many programmers to be the easiest to use as a starting point for getting a feel for programming in general.

6. Have knowledge on at least one advanced modeling technique such as UML or ORM.

7. Start writing some small console applications.

You can make use of small exercises common to programming languages ​​in books.

For this, choose a tool to write programs in the programming language you have learned.

8. Take a more advanced course in your chosen programming language.

Make sure you understand the following concepts and can apply them with relative ease before moving forward:

  • Input and output of user information from a program.
  • The logical flow and the flow of execution of programs in procedural languages.
  • Declaration, assignment and comparison of variables.
  • branch statement construction like if..then..else and select/
  • Loop structures such as, do..while / until, For..Next.
  • The syntax of your programming language for creating and calling procedures and functions.
  • Types of data and their handling.
  • User definition of data types (folders / Structures / units) and their use.
  • If your language supports overloading functions, understand it.
  • Access to the memory of the methods of the language of your choice (pointers, peeking, etc.)
  • If your language supports operator overload, understand it.
  • If your language supports delegate / function pointers, understand it

9. Apply the advanced techniques that you have learned.

  • The object-oriented paradigm.

10. Takes an introductory course in at least one programming language from another programming paradigm.

Learning a programming language for each paradigm is recommended, and most advanced programmers do.

Try one of the following language paradigms:

  • Logical programming paradigm.
  • Paradigm of functional programming.

11. Try comparing the two programming languages ​​you have learned so far.

Assess each person's strengths and weaknesses. Usually this is done by:

  • Take simple samples of your early work from the first programming language and rewrite it using the second programming language.
  • Create a new project and try out the implementation using both languages. Sometimes, depending on your choice of project and language, you might not be able to implement the project in one of the languages!
  • Writing a cheat-sheet or summary table comparisons between similar concepts in the two languages ​​and unique characteristics for each of the languages.
  • Try to find ways to emulate the characteristics that are unique to one of the two languages ​​using the other language.

12. Learn graphical programming concepts using one of the languages ​​you learned.

Almost all programming languages ​​have versions/libraries that support visual programming and those that support console. This can be achieved by:

  • Obtaining an introduction to event programming. Many graphical programming libraries rely to some level on event and event handling (using whatever programming language you choose).
  • Try the desktop software as many times as you can to understand what the software does. Most software development companies offer beta test versions of their products that you can use to test the software. Keep up to date with UI progress.
  • Read articles or tutorials on graphical user interfaces.

13. Start applying your knowledge to the small software projects you design.

Try to apply your programming expertise to the problems you encounter in your day-to-day life.

For example, writing programs that mass rename files, compare text files visually, copy filenames to directory to memory/text file, and things like that. Just do it first.

14. Create a virtual graduation project. Complete this until the end, applying the graphical programming techniques you have learned so far.

15. Broaden your understanding of the visual framework/library/package you learned before by taking refresher courses.

Pay close attention to detail and learn other tips and tricks for your online resource framework.

16. Research and learn other visual element packages / libraries for your programming languages.

17. Take a course in graphics (not graphic design).

It will be very useful for programmers who want to write attractive user interface elements.

18. Become a game programmer (optional). 

Game programming is considered, in most of its parts, desktop programming.

If you intend to become a game programmer, you will need to learn more about game programming after completing these steps.

A course in graphics is a must for game programmers and their second language of choice in the previous stages should be a logic/functional programming language (preferably Prolog or Lisp).

To become a good distributed applications programmer

1. Tackle the programming of distributed applications.

  Distributed application programming is considered by many to be one of the most difficult areas to learn and requires a diverse knowledge in computer and communication technologies.

2. Learn a quick primer on phone systems and their hardware.

This step is optional. However, it is very useful in understanding network topologies.

3. Familiarize yourself with the architectures of networks and hardware devices such as hubs, switches, and routers.

4. Take a course in networking essentials and protocols.

You need a good understanding of the Open Systems Interconnection (OSI) model, Ethernet, IP, TCP, UDP, and HTTP before you start programming distributed applications.

5. Learn XML and familiarize yourself with it.

6. Begin by learning the shell scripting language.

For Windows programming, that would be a script that works with Windows.

For programming based on Linux, Bash and Perl scripts will suffice. Javascript is highly recommended for this in both platforms for the following reasons:

  • It is supported by almost any scripting host in any operating system (Windows Scripting Host supports javascript by default, most Linux distributions have a javascript package for console support).
  • It is considered easier to learn by many developers.
  • It has an ALGOL derived syntax which familiarizes you with a lot more other programming languages ​​when you need to choose a second programming language (C, C ++, C #, Java and J # syntax all have ALGOL derived).
  • By learning javascript you become familiar with client side scripting of web pages which is the bonus side effect!

7. Only apply procedural programming using your scripting language of choice at first.

Later, you can use more advanced programming techniques and paradigms depending on your scripting language and what it supports.

All scripting languages ​​have some aspect of programming procedure at some level.

8. Use the scripting language you learned to write scripts that perform machine-to-machine communications.

Learn what is necessary to do this. Simple communications will suffice.

9. Switch to a desktop scripting/programming language.

Preferably one that is a multi-paradigm language like python. Take a simple introduction to this second language.

Java is considered by most programmers to be the language of choice for many reasons.

However, C# is gaining momentum rapidly in this area. Java and C# are preferred for the following reasons:

  • They are object-oriented programming languages ​​that protect programmers in large teams from the details of integration, as both support components (pre-compiled units of code, which perform certain tasks and which can be used in other programs. ).
  • They support event programming, as well as OO (object oriented) and procedural programming at some level.
  • The environment on which the language is based is distributed by nature (in the case of Java).
  • The availability of many ready-to-use packages that deal with networking, both as open-source code and integrated frameworks; which makes it easy for programmers to program based on the work of others.

10. Focus more on core language features, especially those that support networking.

Pay less attention to user interface elements such as appearance, design and windowing techniques, and user interface elements.

11. Take a course on distributed design and application architecture.

This can be done using books, online tutorials, or college courses. However, understanding of distributed application architecture and its concepts are necessary.

12. Learn more about the building and service elements served using your programming language of choice.

13. Know one or more of the following technologies. It is recommended that you get at least an introduction to each of them.

The majority of distributed application programmers do not stop at one or two programming languages, but learn at least one programming language on each operating system.

This is because if you want your application to be 'distributed' you must provide a version of it at least for each major operating system.

  • Common Object Request Broker Architecture (CORBA)
  • Simple Object Access Protocol (SOAP)
  • Asynchronous JavaScript and XML (AJAX)
  • Distributed Component Object Model (DCOM)
  • NET Remoting
  • XML Web services

To become a good library/platform/core programmer

1. Know what library programming is.

Library programmers are simply advanced programmers, who program units of programming code for use by other programmers.

2. Learn a programming language that supports building reusable components / containers, if you haven't already.

3. Take a refresher course in UML and ORM.

Most library developers use one or two of them.

4. Take a course in software engineering.

5. Know at least the techniques and concepts of modular, component-based, object-oriented and event-driven programming. 

The more you master programming paradigms and languages, the more success you will have as a library/package programmer.

6. Learn about the different operating systems and the programming environment / framework supported by those operating systems.

7. Focus your learning efforts on framework / platform independent environment, programming languages ​​and technologies.

8. If the programming languages ​​you have learned so far have versions of ANSI / ISO / IEEE / W3C standards, master the standards. Try to use standard code as soon as possible.

9. Try to emulate simple, already established libraries, especially open-source ones.

This is useful in the first phase of becoming a library/package (package) programmer.

Start with simple libraries, such as libraries for converting intermediate units of scientific calculations.

If you are a student, make use of your non-programming courses by trying to implement the libraries on the basics of scientific equations.

10. Research and try open-source libraries in your field of programming.

First download the executable binaries from the package. Try to use and find its strengths and weaknesses.

After doing this, download the source code and try to understand how this was developed.

Try recreating these libraries or parts of them. First develop the library after seeing the code and later before seeing the code then try to improve the library.

11. Learn the different approaches used to distribute and deploy components to programmers.

  • Usually, library / package programmers tend to think recursively and / or iteratively about the problems they face. Try to see each problem as a collection of small problems (a sequence of simple tasks) stacked on top of each other.
  • Library / Package programmers tend to generalize. In other words, when they are faced with a simple specific problem, they see the problem on a more general aspect to solve it; solving this general problem will automatically solve the specific problem (and others not specified as well and not necessarily known to begin with).

To become a good system programmer

EMAIL LIKE A BOSS - 10 Examples for Responding to Emails Like a Boss - Infographic

1. Understand what systems programming entails.

System programmers deal with the science of programming not the specific implementations of it. Don't tie yourself to a specific platform.

2. Follow the first three steps for desktop programmers applications.

3. Take an introductory course in linear algebra

4. Take the mathematical analysis course (function, numerical derivative, multivariate equation… you see roughly the pattern, don't you?)

5. Take the course of mathematical logic and discrete calculus

6. Study the different operating systems.

This is done by:

  • learning about how operating systems are installed.
  • learning how to install different operating systems on a single PC (optional, but recommended).
  • Installing more than one operating system. Do not install help packages on systems; instead, use functionality provided purely by operating systems.

7. Take a class (or read books) on computer hardware architecture.

8. Develop your knowledge on the different hardware platforms of the computer.

9. Familiarize yourself with the operation and assembly language of the system platform of the hardware of your choice.

You will learn about all the other system platforms later.

10. Learn ANSI C and C ++ languages, with the concepts of procedural programming.

11. Understand and program with standard C /C++ libraries on the platform of your choice.

Pay particular attention to the Standard Template Library (STL) and perhaps the Active Template Library (ATL).

12. Find online resources, books, and courses to help you understand the C language of your specific platform.

13. Do advanced code creation with C and C ++.

14. Take classes on advanced concepts of assembly language

15. Take an operating system design course

16. Find and read the documentation for the platform of your choice.

It will be easier if you choose an operating system based on Unix (or linux). Understand how the system you are going to work on works.

17. Practice your acquired knowledge.

First create small system utilities. It is generally useful:

  • To try to recreate the small tools that are already existing on your system.
  • To try to adapt your system tools to other operating systems different from yours.

18. Learn from the most useful languages ​​ie from low level languages ​​to high level languages.

Learn ANSI C language first, not C++, not C# or Java and not even D language. Then learn C++ next.

  • Restrict the first language to be learned to language C alone, C because programming systems requires that the programmer be familiar with the following concepts:
    • Real and complete compilation of source code.
    • Low-level object output files.
    • Binary link.
    • Low level programming with machine language / assembly programming. The C language is said to be a disguised / easier to learn overall by some. It also supports inserting assembly language code into the code whenever you want and it is just a procedural language (like assembly).

To become a good scientific programmer

1. Know what scientific development entails. 

Scientific programmers are very advanced programmers.

Instead of working on application development, they work on developing computer technologies such as encryption, programming languages ​​and data mining algorithms.

This level is rarely achieved without academic study and dedication.

2. Accumulate scientific knowledge equivalent to a four-year degree in computer science.

This can be done either by:

  • Take an actual university degree (which often happens).
  • Obtain the course outlines for such a degree from one of the modern universities and take it either through self-study or in separate courses. This could be done theoretically, but the recommended route is the first.

3. Decide on an area of ​​specialty. 

The more precise, the better. It depends on your preferences. However, here is a list of some of the big topics in computer programming science:

  • Algorithm design (searching, sorting, encryption, decryption and error detection in communications are some examples)
  • Programming languages ​​/ compiler design / optimization
  • areas ofartificial intelligence (pattern recognition, speech recognition, natural language processing, neural networks)
  • The robotics
  • Scientific programming
  • Supercomputing
  • Computer-aided design / modeling (CAD / CAM)
  • Virtual reality
  • Computer Graphics (Computer graphics are commonly mistakenly confused with graphic design or user interface design. Computer graphics is the field of study for representing and manipulating graphics in computer systems.)

4. Consider obtaining an advanced university degree.

You might wish to pursue a master's degree or a doctorate.

5. Know the technologies and programming languages ​​related to your area of ​​programming choice.


We are at the end of the programmer's guide.

Now you know the different types of computer programmers and how to be the type of programmer you want to be.

6 ways to become a good programmer - Guide