What We Need To Know
Computer Programming is a part of Computer Science and the ability to learn programming has nothing to do with your level of education. A traditional college, such as the one I attended, can help you learn how to program but many programmers are self taught. The difference in acquiring a job will vary but the more experience and knowledge you gain will ultimately make the degree a taboo part of the hiring process. There are a few topics we must cover before we dive into the vast resources and tips this article will offer you on getting started.
What Is Computer Programming- Computer Programming is the art of talking to a computer. That seems like common sense but understanding that a computer takes input, compiles, runs, and then creates output is a concept that needs to be considered fully before you start. Machines do not understand English, the code we write is based on programming languages that use an IDE to translate what we are typing into code the machine can understand and execute. This language comes with syntax which like grammar is a set of rules for using code of different languages to communicate with the computer.
So What Is Computer Programming Really?- If you thought this after reading the above congratulations, if you didn't, it doesn't matter. When you become a programmer you are essential a cook. You are cooking with recipes that you create and you want these recipes to achieve a taste or in this case a goal. Think of syntax as a guide to that recipe. You wouldn't want to fire up a pot of stew and just pour milk in it. That isn't stew its just hot nasty milk. Syntax keeps you from cooking hot milk unless of course you specify in a way that the end goal is cooked milk. In that case you can write your recipe in a way that would allow you to cook milk. Many programs may do the same things but not all recipes are the same and that makes a huge difference in your programming as well. Not all stew taste the same and some stews people are willing to pay for while others you would have to pay someone to eat.
Is Programming For Me- I dislike this question in all honesty. If you hate computers then you probably should just stop reading now. You will be spending a great deal of time on one. In fact, it will take some of you years to master your first language and at least 3 months with the best case scenario. This will not be easy to learn and it will not be one of those things you can dive into and learn without effort. You will find yourself watching 11 minutes YouTube clips often. You will find yourself searching on Google often. You will get to know Oracle, Microsoft, and other websites pretty well. You will go through trends of loving and hating programming. This is not an easy career field to get into despite the job openings. If you are not: qualified, educated, skilled or a combination of those the chances of getting hired are slim. The only real way to know if this is for you is to dive in. I suggest going to https://www.codecademy.com/ and signing up to try some basic coding. This will take some time as well. One of the best places to start if you like gaming is a program called ALICE. ALICE allows you to program with 3D models and gives a very basic run down of the concepts of programming in a visual basic type of syntax.
What Is Required To Be A Progammer
The number one answer to this question is time and practice. If you are not strong in math and you are wondering if you can program the answer is, yes. Most programming doesn't actually required a great knowledge of mathematical savvy. You will need to know how to add, subtract, divide, and multiple on top of how to work with fractions as both fractions and converting mixed numbers. You will need to know some basic concepts of Algebra but far from what you learn in College or even High School for that matter. If you are programming in a 3D world such as video game programmers the math required gets a bit more complex. If you plan on writing research and analysis programs the math required will include some of the more complex courses such as trig and calculus but most of us can get away with very basic knowledge. These are the traits/tools you will need to succeed on your journey.
Patients- "Be a programmer he says, in a hurry he is". Imagine master Yoda teaching you how to program. Now in the movies it sounds awesome but in real life that would get annoying after 10 minutes. You will need to slow down and take your time. You will need to understand that errors are a part of the process and take time to learn how to fix those errors but know that they will be back faster than Arnold Schwarzenegger rocking a sleek leather jacket. Screwing up is a part of the process even after you become wise in your ways.
Math?- We sort of covered this but I wanted to get more into it. You need to familiarize yourself with the concept of algorithms. You don't need this advanced math class to learn this process just take this example. You want to create a program that allows you to enter how many pennies, nickles, dimes, quarters and half dollars you have in your sofa cushions. Now before we begin we have to think. What do we need this program to do? It needs to: state its purpose, prompt the user to provide input, store that input, use that information to determine the value of different coins that are entered, then take those values and multiple them times the amount of coins, add them all together and lastly provide output. So if you have 13 nickles and 3 dimes you would set up 13*5 = 65 and 3 *10 = 30 and 65+30 = 95 meaning you have 95 cents. This process represents the algorithm needed to solved the issue. This is just a small example of how planning a program out most often will require figuring out what you want to do and how to do it, as well as developing your algorithm to achieve the goal.
Buy Some Books- Life isn't free and while most of the things I suggest are free, some are not. Go to the local used book store or hop on amazon and download the kindle to your computer. Then spend a few bucks getting some books. You can get the "For Dummies Books" and Introduction Books. They will help you. As you grow so should your library. I have a collection worth around 900 dollars and that is pretty small compared to some of my co-workers who are in the thousands. You don't need all that right now but in 6 months plan on dropping a hundred bucks on some material you can have as a reference guide.
An IDE- An integrated development environment (IDE) is a programming environment that has been packaged as an application program, typically consisting of a code editor, a compiler, a debugger, and a graphical user interface (GUI) builder according to Wiki pages. Basically an IDE allows you to interface your language and code inside of the program and it then takes that code and communicates it with the computer. You can also use tools to build GUI's for your programs. I recommend not worrying about GUI's right now and instead focusing on programming on console based applications. The following is a list of downloadable and free IDE programs. To be clear, I am not saying these are the best but these two are programs that allow flexibility in whatever code you may decide to learn. When you decide on the language, you may find that research will lead you to a better IDE for the specific language you are working with.
NetBeans- https://netbeans.org/ supports a wide range of programming languages and has cool addons that allow you to trouble shoot your syntax and code. This program is free to use and is open source.
Visual Studio- https://www.visualstudio.com/en-us/products/free-developer-offers-vs.aspx is a Microsoft program that allows coding in an array of languages on windows.
Let's Begin Our Path
Anyone can write code. It is easy to learn how to write a "Hello World" program. If you want to become a real programmer who writes code for practical use in the real world you will need to take some steps. I am here to open the door for you and if you check my other blogs you will find useful resources to help you on your journey. I will even be looking over the most common questions you will run into in an interview and breaking down in video different ways to write code and different combinations of languages that can help you narrow down a career path. If any of this isn't crystal clear please drop a comment and I will help you as soon as I see it.
This program provides the basics of programming in a 3D environment and you can build mini scenes and video games using this software. Let's be clear on something, at some point on this journey you will need to spend a little money to buy some reading material and guides. The people who write these books are successful in programming and they have been involved in some pretty large and successful projects. If you can get it for free go for it. Alice is free as a program and the tutorials are free but I am unsure if the textbook can be found for free in PDF form.
https://www.codecademy.com/ - Again, Code Academy is a great place to start learning how to code and it provides a lot of good insight on the details behind programming.
Start with Java! Java is platform independent and that is why its so popular. It isn't the fastest and despite all the hype I do not believe it is the easiest to understand. It does have the advantage that if you write a Java program on a Linux it will run fine on windows. However if you write a C++ program on Linux you would have to rewrite it entirely on a windows machine and could not share them across the platforms. That is a pain.
Take time to research front end and back end programming. You may want to do web programming or you might want to build apps or even build server software. You might be an IT person making the jump and you are interested in SQL. Take time to research these things before you dive completely into it. It's important to understand these concepts so you do not spend 3 weeks learning a language that will not help you achieve your goal.