How to Become a Programmer - The How To
How to Become a Programmer! Becoming a programmer is a process that increases your skills day by day and year by year, and programming can be enjoyable and gratifying (mentally, spiritually and financially). This book does not guarantee a miraculously easy path to becoming a programmer, and the order of the steps is not holy, but it will provide you with a rough outline of how to become a programmer in one of the modern programming disciplines. Steps: 1.
Take an introductory course in one (or more) of the following fields: Logical reasoning Discrete mathematics is a branch of mathematics that deals with discrete Programming language (participate in several programming paradigms, beginning with sequential/procedural and progressing to object oriented, functional, and logical programming. For beginners, like Ruby/Python/Pascal and then go deeper into C++/C#/Java). Don't feel obligated to obtain a coding degree. While taking classes in a programming language can be beneficial, Gene Linetsky, a software engineer and company entrepreneur, says: "It's truly questionable whether a degree is beneficial or detrimental. Instead, consider programming to be an apprenticeship—all it's about learning from your failures."
2. Understand database fundamentals like tables, views/queries, and procedures. You may accomplish this with any simple database package, such as: MS Access Database V Fox Professional a paradox MySQL is an excellent database to learn because it is free, widely utilized, and databases are frequently accessed via SQL queries. 3. Make a decision about the type of programmer you want to be.
Programmers are often classified as one of the following: Web developer Programmer of desktop applications Programmer who focuses on operating systems (OS) (tied to a single operating system or set of operating systems) Platform-agnostic programmer Programmer of distributed apps a library, a platform, a framework, or a core programmer Programmer for the operating system Kernel developer Driver developer Programmer with a compiler Scientist in programming 4. Learn about the technologies and programming languages that are relevant to your programming topic of interest. The parts that follow break down the tasks for various forms of programming. Method 1: Web Programming 1.
Understand what Web programming entails. Web apps are software components that run on top of the internet's infrastructure. This means that the programs are accessed using a web browser such as Firefox or Internet Explorer. Being constructed on top of the Internet architecture does not necessitate an active internet connection. It means that web applications are developed on top of common web technologies such as HTTP and FTP. POP3 (Personal Object Protocol) SMTP stands for Simple Mail Transfer Protocol.
TCP is an abbreviation for Transport Control Protocols over IP HTML is an abbreviation for Hyper XML is an abbreviation for Extens The term "coldfusion" refers to the ASP is an abbreviation for the acronym JSP is an abbreviation for Joint Service PHP is an abbreviation for PHP ASP.NET is an acronym for Active Server Pages. 2. Explore a variety of websites to learn about how they typically appear. (Right-click and select View Source, or press F12.)
Look for variety in the type/content of the website, rather than the number of websites viewed. In general, you should visit at least one of the following sorts of websites: Sites of corporate presence (commercial corporations, non-profit businesses/entities, and governmental organizations) Web search engines (search engines, meta search sites, specialized search engines, directories) Sites for data mining Sites for individuals Pages of information/encyclopedia (wikis, data sheets, technical specifications, and manuals listing directories, blogs and journals, news and news agencies sites, yellow pages, etc.) Websites for socializing (social portals, bookmarking sites, note-taking sites) Sites for collaboration (this includes other categories mentioned above, such as wikis and blogs) 3. Learn at least one brainstorming technique/method, as well as the software used to perform that strategy.
For instance, brainstorming diagrams using Microsoft Visio. 4. Learn how to structure a website. This is the process of developing conceptual web diagrams, site maps, and navigation frameworks. 5.
Learn the fundamentals of graphic design in a crash course. Try to learn at least one piece of graphics editing/manipulation software (optional, but strongly recommended) 6. Learn the fundamentals of internet infrastructure.
This entails gaining a fundamental understanding of: Base Protocols for web services (HTTP, FTP, SMTP, and POP3 or IMAP4) Software for web servers (preferably, one for the platform you will be working on mostly) Software for browsing the web. Email client and server software 7. Learn the HTML and CSS programming languages. You might also want to purchase the "What You See Is What You Get (WYSIWYG)" HTML editing software suite.
8. Learn about XML and associated technologies like XSL and XPath (optional but recommended). 9. Make simple static webpages until you're familiar with and at ease with HTML. 10. Learn how to use a client-side scripting language.
Try to realize your full potential by solely using that language. Proceed to the next stage only when you've been acquainted with your client-side scripting language. 12. At least one server-side programming language should be learned. If you want to limit yourself to one server software, study one of the programming languages the software supports.
If you haven't already, learn at least one programming language for each server software. 13. After you've finished studying the server-side programming language, create a trial project for yourself. 14.
Create your own website and begin experimenting online within it. Method 2: Desktop Application Programming 1. Know what you're getting yourself into when it comes to desktop application developing. Most desktop programmers write code for business solutions, thus learning about firms and their organizational and financial structures will save you a lot of time. 2.
Discover the many computer hardware architectures. An intermediate level course in digital circuit design and another in computer architecture are useful; nevertheless, some consider it too sophisticated for a starting point, therefore reading two or three tutorial articles (such as this and this) may suffice. After you've learned your first programming language, you can return to this step. 3. Learn a fundamental (kids') programming language. Don't be put off learning a language because you're older than a "kid."
One of these programming languages is Scratch. These programming languages can greatly lessen the difficulty of learning your first programming language. This step, on the other hand, is optional. It can also be done before proceeding to the next step. 4. Discover the procedural, object-oriented, and functional programming paradigms.
5. Take an introductory course to learn the principles of one of the procedural programming languages. Procedural programming will be required at some level regardless of the language you choose later as your language of choice.
Furthermore, most programmers think that procedural programming is the most straightforward to learn as a foundation for understanding programming in general. 6. At least one advanced modeling approach, such as UML or ORM, should be learned. 7. Begin by creating some simple console or console-like programs. Common little exercises in programming language manuals can be used.
Choose a tool for writing programs in the programming language you're using for this. 8. Take a more advanced course in the programming language of your choice. Before proceeding, ensure that you have a firm grasp on the following principles and that you can apply them with relative ease: Input and output of data to and from a program's users. In procedural languages, the logical flow and execution flow of programs. Variables are declared, assigned, and compared.
Branching programming constructs such as if..then..else and select/switch..case are examples of branching programming structures. Looping constructions such as while..do, do..while/until, for..next are examples of looping constructions. Syntax for generating and calling procedures and functions in your programming language. Data types and their manipulation The use of user-defined data types (records/structs/units). Understand overloading functions if your language provides them.
Memory access methods in your preferred language (pointers, peeking, etc.) Understand if your language allows for operator overloading. Understand delegates/function pointers if your language supports them. 9.
Put the advanced tactics you've learnt to use. 10. Take an introduction course in at least one additional programming language in a different programming paradigm. It is advised that you learn one programming language from each paradigm, and most advanced programmers do. However, you normally start with one, work for a time applying your knowledge and practicing it, then learn the other later, when you have gained real-world programming experience. Try learning one of the following languages: Paradigm of logic programming.
The paradigm of functional programming. Paradigm of object-oriented programming. 11. Compare the two programming languages you've learnt thus far. Examine each one's advantages and disadvantages. Typically, this is accomplished by rewriting basic samples of your early work in the first programming language in the second programming language.
Make a new project and try to implement it in both languages. Depending on your project and language selection, you may be unable to implement the project in one of the languages! Creating a cheat sheet or summary table that compares similar constructions in the two languages as well as aspects specific to each of the languages. Try using the other language to emulate features that are unique to one of the two languages. 12. Use one of the languages you studied to master visual programming concepts.
Almost all programming languages have visual programming versions/libraries, as well as console or console-like programming versions/libraries. This can be achieved by: Learn the fundamentals of event-driven programming. Most visual programming relies on events and event management to some extent (using the programming language you choose). Try as much desktop software as you can and learn what it does.
The majority of software development organizations provide beta-testing versions of their products that you can use to evaluate the program. Keep up with the latest innovations in user interface design. Read some graphical user interface articles or tutorials. 13. Begin by applying your knowledge to small software applications that you create. Try using your programming knowledge to solve difficulties in your daily life.
Write applications that, for example, rename files in bulk, visually compare text files, copy the names of files in a directory to memory/text file, and so on. At beginning, keep it simple. 14.
Create an online graduation project. Finish this using the visual programming techniques you've learnt so far. 15.
Take additional courses, spend more attention to detail, and acquire more tips and techniques for your framework from online resources to broaden your comprehension of the visual framework/library/package you learnt previously. 16. Look for and learn about alternative packages/libraries of graphic aspects for your programming languages. 17. Take a graphics course (not graphics design).
It will be quite useful for programmers who wish to create visually nice user interface elements. 18. Consider a career as a game programmer (optional). In most cases, game development is considered desktop programming. After completing these steps, you will need to study more about game programming if you want to become a games programmer. For game programmers, a graphics course is required, and the second language of choice in the prior steps should be a logic/functional programming language (preferably Prolog or Lisp).
Method 3: Distributed Applications Programming 1. Take up the task of developing distributed apps. Many believe distributed application programming to be one of the most difficult to master since it necessitates a wide range of understanding in computer and communication technologies. 2. Take a crash course in telephone systems and hardware.
This is an optional step. It is, nonetheless, tremendously useful in comprehending network topologies. 3. Learn about networking hardware architectures and devices like hubs, switches, and routers. 4. Take a networking protocol and fundamentals course.
Before you begin programming distributed applications, you should have a solid understanding of the Open Systems Interconnection (OSI) model, Ethernet, IP, TCP, UDP, and HTTP. 5. Learn and become acquainted with the XML language. 6. Begin by studying a shell programming language. That would be any script that works with Windows Scripting Host for Windows-based programming.
Later, depending on your scripting language and what it allows, you can employ more advanced programming approaches and paradigms. At some level, all scripting languages incorporate procedural programming elements. 8. Write scripts that communicate between machines using the scripting language you learnt. Learn what is required to do so.
Simple communication is all that is required. 9. Switch to a desktop scripting/programming language.
Preferably a multi-paradigm language, such as Python. Consider a basic introduction to the second language. For a variety of reasons, most programmers regard Java to be the language of choice.
However, C# is quickly gaining traction in this industry. For the following reasons, Java and C# are preferred: Because they both support components, they are object oriented programming languages that shelter programmers in big teams from implementation concerns (units of code, pre-compiled, that perform a certain task and can be used in other programs). They provide some support for event-driven programming, as well as OO and procedural programming.
Nature distributes the framework on which the language is created (in the case of Java). The availability of many ready-made networking packages, both as open-source code and framework built-in packages; this allows programmers to build on the work of others. 10. Concentrate on the language's essential features, particularly those that facilitate networking. Less emphasis should be placed on user-interface aspects such as output, window design and approaches, and user-interface elements. 11.
Take a course in the design and architecture of distributed applications. This can be accomplished through the use of books, internet tutorials, or academic courses. However, understanding the architecture and ideas of distributed applications is required. 12. Learn how to create serviced components and services in your preferred programming language. 13.
Understand what core programming entails. Core programmers are simply advanced programmers who transitioned from programming apps to programming code units that other programmers can use. 2.
If you haven't already, learn a programming language that allows you to create reusable components/packages. 3. Take a UML and ORM advanced course. The majority of library developers use one or both of them.
4. Take a software engineering course. 5. Learn at least the techniques and principles of modular, component-based, object-oriented, and event-driven programming. The more programming paradigms and languages you learn, the better you will be as a library/package programmer. 6.
Learn more about the various operating systems and programming frameworks that these operating systems support. 7. Concentrate your efforts on studying platform-independent frameworks, programming languages, and technologies.
8. Master the standards if the programming languages you've learnt so far have ANSI/ISO/IEEE/W3C standard versions. When feasible, try to utilize standard code. 9. Try to imitate simple, well-established libraries, particularly open-source ones. This is useful when starting out as a library/package programmer.
Begin with simple packages like as unit conversion and intermediate scientific calculations. If you are a college student, try to incorporate their equations and scientific core as libraries using your non-programming classes. 10. Look for and try open-source packages in your programming field. First, download the package's binaries/executables. Try it out and identify its strong and weak qualities.
After that, download the source code and try to find out how it was done. Make an attempt to rebuild such libraries, or parts of them. Do it after you've seen the code at first, and then before you view the code. At a later stage, try to improve those libraries.
11. Learn about the various methods for distributing and deploying components to programmers. Typically, library/package programmers think recursively and/or iteratively about all challenges they encounter. Consider each problem to be a collection of lesser problems (a series of simpler jobs) or a recurrent process of lowering the problem's scope to smaller scopes and then piling those scopes on top of each other. Library/package developers have a tendency to generalize. That is, when faced with a basic specific problem, they frequently consider a more general problem and attempt to solve that broad problem, which will naturally solve the smaller one.
Method 5: System Programming 1. Learn more about system programming. System programmers are more interested in programming science than specific implementations. Don't restrict yourself to just one platform. 2.
For Desktop Applications Programmers, proceed with the first three steps. 3. Take a Linear Algebra beginning course. 4. Take a Calculus course. 5.
Take a Logic and/or Discrete Mathematics course. 6. Introduce yourself to several bare-metal operating systems. This can be accomplished by first learning how operating systems are installed. Learning how to install multiple operating systems on a single computer (optional, but recommended).
Installing several operating systems. Install no assistance packages on the systems; instead, rely on the bare functionality given by the operating systems. 7. Take a computer hardware architecture course (or read literature on the subject). 8. Acquire a working knowledge of the various computer hardware platforms.
9. Get a basic understanding of the assembly language of the hardware platform/operating system of choice. You will eventually learn how to assemble additional platforms/systems. 10. Learn the ANSI C and C++ programming languages, as well as the basics of procedural programming. 11.
Understand and practice C/C++ standard libraries on your preferred platform. Pay special attention to Standard Template Library (STL) and maybe Active Template Library (ATL) (ATL). 12. Look for internet resources, books, and courses to learn about the C-flavor of your platform. 13.
Experiment with sophisticated programming in C and C++. 14. Learn more advanced Assembly techniques. 15. Take an operating system design course. 16.
Find and read the documentation for your preferred platform. If you use a Unix-based operating system, this will be much easier. Understand the system with which you will be working later. 17. Put your newfound knowledge to use. Create simple system utilities first.
Attempting to reproduce minor tools that are currently there on your system is usually beneficial. Attempting to migrate tools from other operating systems to yours. 18. Learn languages in the most beneficial order possible.
Only in this case does the first programming language matter. Learn ANSI C first, then C++, C#, Java, then D. Then you should study C++. The reason for limiting the first language to C and C only is that systems programming requires the programmer to be conversant with the following concepts: Compilation of source code in its entirety. Files containing low-level object output. Binaries are linked together.
Machine language/assembly programming at the lowest level. Some consider C to be a disguised/easier-to-learn assembly language. It also allows you to inject assembly language code into your code whenever you want, and it is merely procedural (like assembly).
Method 6: Programming Science 1. Understand the work of a programming scientist. Programming scientists are highly skilled programmers who, rather than creating programs, focus on the development of computing technology such as encryption, programming languages, and data mining methods. This level is rarely attained without much academic study and perseverance.
2. Acquire the scientific understanding required for a four-year computer science degree. This can be accomplished in one of two ways: by pursuing a formal academic degree (which is what usually happens). Obtaining the course outlines for such a degree from a modern university and completing the courses either through self-study or as independent courses.
This is potentially possible, but the suggested path is the first. 3. Choose a specialization. The more detailed you can be, the better. This is determined by your selections. However, below is a list of some of the important computer programming science topics: Design of algorithms (searching, sorting, encryption, decryption and error detection in communications are some examples) Design and optimization of programming languages and compilers Domains of artificial intelligence (pattern recognition, speech recognition, natural language processing, neural networks) Robotics Programming in science Supercomputers CAD/CAM stands for computer-aided design/modeling.
Virtual reality is a term that refers to the (Computer graphics is frequently mistaken with graphical design or graphical user interface design.) The study of how to display and modify graphics in computer systems is known as computer graphics.) 4. Consider pursuing a higher level of education. You could want to get a master's or a PhD.
5. Learn about the technologies and programming languages that are relevant to your programming topic of interest. Thanks for watching! Now you know How to Become a Programmer! Follow your dreams!