How to be a programmer

Author: John Stephens
Date Of Creation: 1 January 2021
Update Date: 2 July 2024
Anonim
How to Become a Programmer in 2021
Video: How to Become a Programmer in 2021

Content

Becoming a developer is an accumulating process that builds your skills over time, and it can turn into a fun and rewarding job (intellectually, mentally, and financially). ). This tutorial does not promise you the magic of an easy way to become a programmer, and the sequence of steps is not so important, but you will get the gist of how to become a programmer. into a programmer in one of the modern programming fields.

Steps

  1. Take an introductory course in one (or all) of the following subjects:
    • Logic
    • Discrete math
    • Programming Language (A beginner is best to learn C ++ / Java / Python)


    Gene Linetsky, MS

    Startup founder and technical director Gene Linetsky is startup founder and software engineer in the San Francisco Bay Area. He has been in the high-tech industry for more than 30 years and is currently the Technical Director at Poynt, a technology company that makes smart Point-of-Sale devices for businesses.

    Gene Linetsky, MS
    Start-up founder and technical director

    You do not need a coding degree. While learning programming languages ​​is beneficial, Gene Linesky, software engineer and founder of a startup, says: "Whether a degree is useful or not is debatable. in there, you can think of programming as an apprentice process — you'll learn from mistakes. "


  2. Learn about database concepts such as tables, views / queries, and procedures. You can use any simple database package to do this, for example:
    • MS Access
    • DB V
    • Fox Pro
    • Paradox
    • MySQL is a good database to learn as it is free, commonly used, and the databases are often accessed with SQL queries.

  3. Decide what type of developer you want to be. Programmers generally fall into one of the following categories:
    • Web developer
    • Desktop application programmer
      • Operating System-oriented programmer (associated with a single operating system or set of operating systems)
      • A platform independent developer
    • Distributed application programmer
    • Libraries / platform / framework / core programmer
    • System programmer
      • Kernel staff programmer
      • Driver programmer
      • Programmer compiler
    • Programming scientist
  4. Research the technologies and programming languages ​​related to the programming area you choose. The next sections will divide the tasks of the different types of programming. advertisement

Method 1 of 6: Web programming

  1. Understand what Web programming needs. Web applications are software components designed to operate on top of the internet architecture. This means that applications are accessed through a browser software such as Firefox or Internet Explorer. These applications are located on top of the Internet architecture which means that it does not require a real connection to the Internet. This means that Web applications are built on top of standard web technologies such as:
    • HTTP
    • FTP
    • POP3
    • SMTP
    • TCP
    • IP protocols
    • HTML
    • XML
    • Coldfusion
    • ASP
    • JSP
    • PHP
    • ASP.NET
  2. Check out the various pages to see what they usually look like. (By right-clicking, then selecting View Source (view source code) or pressing F12). You should look for diversity in the type / content of the website, not the number of web pages you see. In general, you'll need to visit at least one page for each of the following types of websites:
    • Company pages (commercial companies, companies / nonprofits, governmental organizations)
    • Web indexing tools (search engines, meta search sites, dedicated search engines, directories)
    • Data mining sites
    • Personal pages
    • Documentation / encyclopedia sites (Wiki, datasheets, technical specifications, and user guide directories, blogs and magazines, news and news sites, yellow pages ...)
    • Social sites (social portals, bookmarks and online note-taking sites)
    • Collaboration sites (including all of the above categories, like wikis and blogs)
  3. Learn at least one brainstorming technique / method and a piece of software used to do that. Examples: brainstorming charts and MS Visio software.

  4. Get familiar with the site structure. This is the creation of conceptual web charts, sitemaps, and navigational structures.
  5. Take an intensive graphic design training course. Try to learn at least one graphical editing / manipulation software package (Not required but highly recommended).

  6. Learn the basics of internet infrastructure. It involves grasping the basic idea of:
    • Common Web service protocols (HTTP, FTP, SMTP, and POP3 or IMAP4)
    • Web server software (preferably the software for the platform on which you will work primarily with it)
    • Web browsing software.
    • Server and client software for email

  7. Learn HTML and CSS languages. You may also need the “What You See Is What You Get (WYSIWYG) (What You See Is What You Get)” package for HTML editing.
  8. Learn XML and XML related technologies like XSL and XPath (optional but recommended).
  9. Create simple static web pages until you are familiar with and familiar with HTML.
  10. Learn a client scripting language. Most users learn JavaScript. Others learn VBScript, but it is not compatible with most browsers.
  11. Familiarize yourself with the client scripting language you learned. Try to do your best with just that language. Only move on if you are at least familiar with the client scripting language.
  12. Learn at least one server programming language. If you choose to limit yourself to a server software, learn the programming languages ​​supported by that software. If not, learn at least one programming language for each server software.
  13. Create a pilot project for yourself after you've finished studying the server programming language.
  14. Set up your own website and start experimenting with your own online. advertisement

Method 2 of 6: Desktop Application Abdominal Programming

  1. Understand what to do with desktop application programming. Most desktop programmers compose the code for business solutions, so getting to know their businesses, their organizational structures and their financial structures will save a lot of time.
  2. Study of different computer hardware architectures. A fundamental course in digital circuit design and another in computer architecture will be of interest. However, some people think that it is quite difficult to learn it in the beginning, so reading two or three tutorials (like this and this) is enough. You can then return to this step after you learn your first programming language.
  3. Learn an elementary programming language (for kids). Don't be embarrassed to learn such a language just because you're too old to be called a "kid." An example of such programming languages ​​is Scratch. These programming languages ​​can greatly reduce the difficulty of learning your first programming language. However, this step is optional, you can also do it before the previous step.
  4. Learn about procedural, object-oriented, and functional programming models.
  5. Take a basic course in one of the procedural programming languages. Whichever language you choose later on, you will still need some degree of procedural programming. In addition, programmers believe that procedural programming is the easiest starting point for grasping the idea of ​​programming in general.
  6. Learn at least one advanced modeling method like UML or ORM.
  7. Start writing some small console application or something like that. You can use the small exercises in programming language books. To do this, select a tool for writing programs according to the programming language you intend to write.
  8. Take a more advanced course in the programming language of your choice. Make sure you understand the following concepts and can apply them with relative ease before moving on:
    • Input and output information for the users of a program.
    • The logical flow and execution flow of the programs in procedural languages.
    • Declare, assign and compare variables.
    • Branch statements in programming such as if..then..else and select / switch..case.
    • Loop statements like while..do, do..while / until, for..next.
    • Your programming language syntax for creating and calling procedures and functions.
    • Data types and manipulation them.
    • User-defined data types (records / structures / units) and their usage.
    • If your language supports function overloading, understand it.
    • Memory access methods of the language you choose (pointers, how to read the contents of any cell ...)
    • If your language supports operator overloading, understand it.
    • If your language supports function pointers, understand it.
  9. Apply advanced techniques that you have learned.
    • Object-oriented model.

  10. Take a basic course on at least one other programming language in another programming model. You should learn one programming language for each model, most advanced programmers do. However, you should usually start with a language, work on it for a while, apply your knowledge and practice it. After having practical programming experience, then learn a new language. Try one of the following language arrays:
    • Logical programming model.
    • Functional programming model.

  11. Let's try to compare the two programming languages ​​you have learned so far. Evaluate the strengths and weaknesses of each language. This is usually done by:
    • Take an earlier simple job pattern with the first programming language and rewrite it in the second programming language.
    • Create a new project and try it out in both languages. Sometimes depending on which project you choose and the language you choose, you might not be able to do it in either language!
    • Compare like a quick lookup table or summary table between two similar statements in two languages ​​and the unique features of each.
    • Try to find a way to mimic the unique characteristics of one of the languages ​​in the other.

  12. Learn programming concepts using one of the languages ​​you've learned. Most programming languages ​​have versions / libraries that support visualization and other types of programming that aid in communication or similar. You can do this by:
    • Learn a little about event programming. Most visual programming to some extent relies on events and the handling of events (using the programming language of your choice).
    • Try out as much of the desktop software as possible and find out what they do. Most software development companies provide test (beta) versions of products to users to test software. Therefore, stay up to date with user interface advances.
    • Read some articles or tutorials on graphical user interfaces.
  13. Start applying your knowledge to small software projects you design. Try applying your programming skills to the problems you face every day. For example write a program to batch rename files, compare text files visually, copy the names of files in a directory to a memory / text file, and so on. Remember, it's just that simple first.
  14. Create a virtual "graduation project". Complete the project to the end, applying the visualization techniques you've learned so far.
  15. Expand your understanding of visual frameworks / libraries / packages that you previously learned by taking advanced courses, paying more attention to details, and learning more tips and tricks for the framework. your work from online resources.
  16. Search for other visual element packages / libraries for your programming language and study them.
  17. Take a graphic course (not graphic design). It will be very helpful for programmers who want to write attractive UI elements.
  18. Become a game programmer (optional). Game programming is still largely considered desktop programming. If you plan to become a game developer, you will need to learn more about game programming after completing these steps. A graphics course is required for game programmers, and the second language of choice in the previous steps should be a logical / functional programming language (Prolog or Lisp should be chosen). advertisement

Method 3 of 6: Distributed Application Programming

  1. Learn about distributed application programming. Distributed application programming is considered by many to be one of the most difficult to learn and requires a rich knowledge of computers and communication technologies.
  2. Get a quick look at voice systems and their hardware. This step is optional. However, it is very helpful to have an understanding of network topologies.
  3. Familiarize yourself with the hardware architecture and networking devices such as central concentrators (hubs), switches and routers (routers).
  4. Take a course on protocols and the basics. You need a good understanding of the Open Systems Connection (OSI) model, Ethernet, IP, TCP, UDP, and HTTP before you start with programming distributed applications.
  5. Learn the XML language and familiarize yourself with it.
  6. Start by learning a scripting language for the command interpreter. For Windows-based programming, it could be any script that works with Windows Scripting Host. For Linux-based programming, the Bash and Perl scripts will suffice. JavaScript is highly recommended for this on both platforms for the following reasons:
    • It is supported by most scripting tools in any operating system (Windows Scripting Host supports JavaScript by default, most Linux distributions have a JavaScript scripting communication support package) .
    • It is considered by many programmers to be easier to learn.
    • It has an ALGOL derived syntax that allows you to become familiar with many other programming languages ​​when you need to choose a second programming language C, C ++, C #, Java and J # all have syntax derived from ALGOL.
    • By learning JavaScript, you will familiarize yourself with client scripting for web pages, which is obviously a beneficial side effect!
  7. First, apply procedural programming only in the scripting language of your choice. You can then use more advanced programming patterns and techniques according to your scripting language and what it supports. All scripting languages ​​have to do with procedural programming to some degree.
  8. Use the scripting language you learned to write scripts that do the communication between machines. Find out what is needed to do it. Just simple contact information is enough.
  9. Switch to a desktop programming / scripting language. Best is a multi-paradigm language like Python. Preliminary study about this second language. Java is the language of choice for most programmers for many reasons. However, C # helps to create faster momentum in this array. Java and C # are favored for the following reasons:
    • They are object-oriented programming languages ​​that help programmers in large groups avoid implementing parts because they all have the ability to support components (i.e., code units, frontier translation performed for a particular task can be used in other programs)
    • They support event-driven programming as well as OO (object-oriented) and procedural programming to some degree.
    • The framework on which the language is built is characterized by a distributed nature (in the case of Java).
    • There are pre-made programming packages available to handle networking, either open source or built into the framework; This makes it easy for developers to work on other people's products.
  10. Focus more on the core language features, especially those that support networking. Pay less attention on UI elements such as outputting information, design and techniques for the work window, and UI elements.
  11. Take a distributed application architecture and design training course. You can study through books, online tutorials or academic courses. Either way, however, you need to grasp the architecture of distributed applications and its concepts.
  12. Learn how to build service components as well as using the programming language of your choice.
  13. Learn one or more of the following technologies. At least you should go through them all. The majority of distributed application developers learn not only one or two programming languages, but at least one programming language per operating system. This is because if you want your application to be “distributed”, you must at least provide one version of it for each popular operating system.
    • Common Object Request Broker Architecture (CORBA)
    • Simple Object Access Protocol (SOAP)
    • Asynchronous JavaScript and XML (AJAX) (asynchronous JavaScript and XML)
    • Distributed Component Object Model (DCOM) (Distributed Component Object Model)
    • .NET Remoting (Solution for processing remote computation)
    • XML Web Services
    advertisement

Method 4 of 6: Library / Platform / Framework / Core Programming

  1. Understand what core programming is. Core programmers are merely high-level programmers who convert programming applications to programming code units for use by other programmers.
  2. If you haven't, then learn a programming language that aids in building reusable components / packages.
  3. Take an advanced course in UML and ORM. Most library developers use one or both of these.
  4. Take a course in software engineering.
  5. At least learn modular, component-based, object-oriented and event-driven programming concepts and techniques. The more programming models and languages ​​you understand, the more successful you will become as a library / package developer.
  6. Learn more about the different operating systems and programming frameworks supported by them.
  7. Focus your learning efforts on platform-independent frameworks, programming languages, and technologies.
  8. If the languages ​​you have studied so far have versions of the ANSI / ISO / IEEE / W3C standards, then master the standards. Try to use standard codes whenever you can.
  9. Try mimicking the simple libraries that come pre-made, especially the open source libraries. This is useful in the early stages of becoming a library / package developer. Start with simple packages like the intermediate scientific computation and unit conversion packages. If you're a student, take advantage of non-programming disciplines by trying to implement their equations and multiply science as libraries.
  10. Search and try open source packages in your programming field. First download the binaries / executables of the package. Try using it and find its strengths and weaknesses. Once done, download the source code and try to find out how it is done. Try recreating those libraries or parts of them. First of all, do it after you've seen the source code and then do it before you see the source code. At later stages, try to refine those libraries.
  11. Study the different approaches to distributing and deploying components to programmers.
    • Often times, library / package programmers tend to think recursively and / or repeatedly about all the problems presented to them. Think of each problem as a collection of smaller problems (a series of simpler tasks) or as an iterative process of reducing the problem scope to smaller scopes and then Stack the ranges on top of each other.
    • Library / package developers tend to generalize. That is when they are presented with a simple specific problem, they often think of a more general problem and try to solve that general problem so that it will automatically solve the smaller problems.
    advertisement

Method 5 of 6: System Programming

  1. Understand what system programming entails. The system programmer deals with the "science" of the programming, not its specific implementations. Don't tie yourself to a specific background.
  2. Follow the first three steps to becoming a Desktop Application Programmer.
  3. Take an introductory course on Linear Algebra.
  4. Take a Computing Course.
  5. Take a discrete Mathematics and / or Logic course.
  6. Familiarize yourself with the different basic operating systems. This can be done by:
    • Understand how operating systems are installed.
    • Learn how to install different operating systems on one PC (optional, but recommended).
    • Install more than one operating system. Do not install any other plugin on the system; instead use only the basic functions provided by the operating system.
  7. Take a course (or maybe read a book) about computer hardware architecture [[.
  8. Develop understanding of different computer hardware platforms.
  9. Get started with the assembly language of the operating system / hardware platform of your choice. Later you will learn more assembly language for other operating systems / platforms.
  10. Learn the ANSI C and C ++ languages, along with procedural concepts.
  11. Understand and practice standard C / C ++ libraries on the platform of your choice. Special attention should be paid to the Standard Template Library (STL) and possibly the Active Template Library (ATL).
  12. Search online resources, books and courses to understand C's features on the platform of your choice.
  13. Practice advanced code generation with C and C ++.
  14. Learn more advanced assembly language.
  15. Take a course in operating system design.
  16. Find and read material on the specific platform of your choice. This will be easier if you choose a Unix-based operating system. Master the system you will be working on later on.
  17. Practice what you gain. Let's first create some small system utilities. It usually helps if you:
    • Try recreating the small tools that are available on your system.
    • Try migrating utilities available in other operating systems to yours.
  18. Learn languages ​​in the order in which they are most helpful. This is the only array where the first programming language is learned to have its meaning.Learn ANSI C first, not C ++, C #, Java or D first. Then learn C ++.
    • Limit the first language to C and only C because programming systems requires programmers to be familiar with the following concepts:
      • Compile the actual and the entire source code.
      • Low level object output files.
      • Binary-linked codes.
      • Low level machine language / assembly language programming. Many people believe that C language is both alternative and easier to learn assembly language. It also supports inserting assembly code into code whenever you like, and it's just procedural (like assembly).
    advertisement

Method 6 of 6: Programming Science

  1. Know what a programmer does. Programming scientists are very advanced programmers that instead of developing applications, they develop computational technologies such as coding, programming languages ​​and data mining algorithms. This degree is rarely achieved without in-depth academic research.
  2. Cumulative scientific knowledge equates to a 4-year degree in computer science. This can be achieved in one of the following ways:
    • Take a real academic degree (which is often the case).
    • Find a course outline for such a degree from one of the available universities and study the subjects on your own or take private courses. Theoretically you can achieve this, but you should go the first way.
  3. Select a specialized array. Be more specific, the better. This depends on your preference. However, the following is a list of the main topics in computer programming science:
    • Design algorithms (find, classify, encode, decode and detect errors in communications are a few examples)
    • Design / optimization of programming languages ​​/ compilers
    • Artificial intelligence arrays (pattern recognition, speech recognition, natural language processing, neural networks)
    • Robotics
    • Scientific programming
    • Super computation
    • Computer-aided design / modeling (CAD / CAM)
    • Virtual reality
    • Computer graphics (Computer graphics is often confused with graphic design or graphic user interface design.) Computer graphics is the field of study on how to represent and manipulate graphics in computer systems. calculation).
  4. Consider getting a higher academic degree. You can pursue a master's or doctoral training program.
  5. Learn programming languages ​​and technologies relevant to your chosen programming field. advertisement

Advice

  • Regardless of the type of programming you want to try and whatever level you want to achieve, consider taking classes at your local community college or university. Don't be intimidated by terms like "Computer Science". Any class you take that does not require initial requirements or requirements will focus on teaching the basics of programming, but check with your instructor or mentor nonetheless before Make sure it's what you're looking for, as classes like “Computer Skills” can focus more on getting used to office applications or something like that.