Hi, I was wondering what you would recommend to start learning code. I am in high school and I am planning on going to Iowa State to get a degree in software engineering. I am wondering what I should learn now. I have tried a book but, I ran into some problems when It wanted me to use some software and run some emulators that of course have problems that the book never mentions and I am not interested at this point in my learning of how to test something I don't know how to make.
I would like to start with a basic compiler with Java because that language is versatile between android and windows regardless of its lack of efficiency. Then use a cheat sheet to learn it, then learn down the line how to move it to android.
What do you guys think is a good way to start and if the method I listed would be a good idea?
Hey dude, first off, I've definitely been there. I want to code Uscript for the Unreal Engine and for some reason I thought it would be a good idea to go to ECPI (This online school) for database programming. I wouldn't tie yourself down to one specific platform, especially if you are still in High School. This field has a way of taking you from one thing you thought you wanted to do and now it's got you doing something completely different but still loving it. Right now I am learning database scripting with MySQL and Oracle and it's a lot cooler and easier than you would think it would be. I've learned C, C#, and now SQL. If you want to code but don't know where to go, check out codeacademy.com. They won't teach you Java, but they can teach you PHP, Python, Javascript (Not to be confused with Java). That would be the best place to start, if you haven't already heard I will go ahead and tell you, once you learn a computer language, picking up a second one is much easier.
Instead of Java you could try C#. The syntax is VERY similar to Java but you also do some stuff with pointers and pass-by-reference which is not available to you in Java but its extremely important in programming. Learning C# will help you better understand C and C++ which are much lower level and more difficult to understand when your a beginner.
Like I said the syntax is extremely similar but learning C# will be more beneficial as it has lower level functionality that Java doesn't give you.
One thing to remember is that Programming languages aren't all that important. Techniques are far more important than syntax and techniques are transferable between any language to any language so don't worry too much about language because programming and learning aspects of say awk doesn't make you a worse Java programmer or even waste time that you could have been programming Java because you are still learning computer science concepts (such as objects, data types and algorithms ) that transfer almost 100% over to any other language.
Dealing with specific languages to learn there are differing opinions out there about what to do about your first language but in the end they are each person's opinions about a theoretical 5-10% benefit. The most important part of programming is to actually do it so it is important to choose a language that suites the kind of use you would enjoy using programming skills for.
In general the first thing and most important thing about programing to know are the general concepts. No matter what you do you are likely to learn these. It seems that this was your frustration with your previous approach as you were spending time setting up black boxes and testing them rather than actually learning stuff.
You are definitely right to want to learn the basics before moving on to a specific thing such as Android. As you start focus on things that are basic to computers such as variables and data, functions, iteration and branching. Once you know these you are most of the way to being able to do thing with any library and language.
programming is programming. the rest is all syntax. i started with C/C++ just basic CLI stuff nothing fancy. get your head wrapped around the concepts. after that i moved to C# but didnt get as far as i would have liked before i went off to college where they teach java. so my recommendation is C/C++, java, one scripting language(lua, python seems popular, ruby), and one web(HTML,JS,PHP).