7 answers
Asked
698 views
What is the easiest way to learn new programming languages?
I am a freshman at Cal Poly Pomona majoring in Computer Information Systems. I would like to develop my technical skills but I am not quite sure where to start. Any advice would be helpful, thank you. #programming
Login to comment
7 answers
Updated
Jorge’s Answer
I suggest to start with a personal project. Choose a small task that you would like to automate. Once you have the scope of your project, try to visualize the end result. Does it have a GUI or is it a command line program? Does it store information in a database or in a text file? Write it down if necessary.
After you have a mental image of your project, think of the logical steps to implement the functionality and rephrase them as questions to use in a search engine (i.e how to write to a text file). Refine your search terms with your programming language of choice (i.e how to write to a database in Python). Choose the results that you find easier to understand and implement them in your project. See how it works together and if it does what you expected it to do.
The next phase is to read about programming best practices and software design patterns. This knowledge will help you distinguish between good code and poorly written code.
Choose a personal project to experiment
Read about best practices and design patterns
After you have a mental image of your project, think of the logical steps to implement the functionality and rephrase them as questions to use in a search engine (i.e how to write to a text file). Refine your search terms with your programming language of choice (i.e how to write to a database in Python). Choose the results that you find easier to understand and implement them in your project. See how it works together and if it does what you expected it to do.
The next phase is to read about programming best practices and software design patterns. This knowledge will help you distinguish between good code and poorly written code.
Jorge recommends the following next steps:
Updated
Mark’s Answer
I find that the ability to program is separate from the knowledge of programming languages. It takes a certain mindset to be able to mentally visualize a logical solution so if you can program at all, the rest is semantics; the semantics of the new language.
My approach is to remake something I've made before using the new technology. My favorite is the dice game Craps. I've written a Craps program in RPG, FORTRAN, BASIC, Javascript, Flash, and some interesting hybrids like AJAXing the interactions and doing the processing in PHP. My rationale is that I know the problem and the program flow very well. The only thing that's changing is the language I'm using to express the solution. The game itself is of a good complexity but doesn't require rocket science. It does require input, output, processing, some randomization, plenty of decision making and laying out an interface. This allows for lots of exploration too. RPG didn't lend itself to motion graphics but Flash did. Adding CSS3 animations took a huge load off my Javascript.
Attitude is important too. Curiosity is what drew me into programming to begin with. Questions like
How do I...
Can I...
What would happen if I...
How does this tie into that...
Would it be possible to...
What would happen if I...
These will lead you into corners of the language there isn't time to cover in class.
Learn to love to learn: When I started out, we had HTML and Javascript. Rounded corners were 3 x 3 tables and photoshopped assets. If I had stayed there, I wouldn't still be working in web development. I spend at least an hour a day beyond my work for clients just looking at all the incredible things my peers are doing, reading tutorials, researching ancillary technologies. People in programming are very interactive and most are helpful. If you can't find an article or forum thread on your exact problem, your curiosity has served you well!
Finally, look for your tools in the new language. If you're going to solve a logic problem, you'll need basic tools like branches, comparisons, and collections. Different languages have different approaches to the needs of a programmer but the needs of a programmer don't change.
Install a local server like WAMP or XAMP and start a project called playground. Play at least an hour a day.
My approach is to remake something I've made before using the new technology. My favorite is the dice game Craps. I've written a Craps program in RPG, FORTRAN, BASIC, Javascript, Flash, and some interesting hybrids like AJAXing the interactions and doing the processing in PHP. My rationale is that I know the problem and the program flow very well. The only thing that's changing is the language I'm using to express the solution. The game itself is of a good complexity but doesn't require rocket science. It does require input, output, processing, some randomization, plenty of decision making and laying out an interface. This allows for lots of exploration too. RPG didn't lend itself to motion graphics but Flash did. Adding CSS3 animations took a huge load off my Javascript.
Attitude is important too. Curiosity is what drew me into programming to begin with. Questions like
How do I...
Can I...
What would happen if I...
How does this tie into that...
Would it be possible to...
What would happen if I...
These will lead you into corners of the language there isn't time to cover in class.
Learn to love to learn: When I started out, we had HTML and Javascript. Rounded corners were 3 x 3 tables and photoshopped assets. If I had stayed there, I wouldn't still be working in web development. I spend at least an hour a day beyond my work for clients just looking at all the incredible things my peers are doing, reading tutorials, researching ancillary technologies. People in programming are very interactive and most are helpful. If you can't find an article or forum thread on your exact problem, your curiosity has served you well!
Finally, look for your tools in the new language. If you're going to solve a logic problem, you'll need basic tools like branches, comparisons, and collections. Different languages have different approaches to the needs of a programmer but the needs of a programmer don't change.
Mark recommends the following next steps:
Updated
John’s Answer
Just like any language the only way to learn it is by practicing reading, and writing. There are many resources online, and sometimes it is easy to be overwelmed with many examples. Several programming languages have an official guide which is very good for both an initial overview, and a reference once you get the basic syntax. Once you are able to make a few small projects of your own in one language don't be afraid to look at, and modify the source code of open source projects which you already use, or which you may find useful.
Updated
Donna’s Answer
If you are already studying to be a computer major, you probably won't get a lot of training in programming. Which to me really sucks! Colleges are not teaching programming anymore. I took PL1, Assembler, COBOL, Fortran and Pascal many years ago. But what I found that makes it easier to learn any programming language is understanding the logic of how something works. Doing the If / Then/ Else scenarios in your head continually makes programming easier. The differences between the different languages are just like speaking languages - logic and what you want to say or do is same, just a little different style or syntax.
Besides taking the training I had, I have learned other languages for database coding on my own by reading some how to Java type of books, SQL and even Lotus Notes Domino designing. Some applications have a help section to look up how the coding statements work and examples of them. So helps when trying to figure something out. If you can find a company that is taking interns, that is a great way to get your foot in the door as well as learn from someone who has experience. Good luck! We REALLY need some good programmers out here!
Besides taking the training I had, I have learned other languages for database coding on my own by reading some how to Java type of books, SQL and even Lotus Notes Domino designing. Some applications have a help section to look up how the coding statements work and examples of them. So helps when trying to figure something out. If you can find a company that is taking interns, that is a great way to get your foot in the door as well as learn from someone who has experience. Good luck! We REALLY need some good programmers out here!
Updated
Hunter’s Answer
The great thing about coding is that you can learn while creating something cool. Choose something outside of coding that you are passionate about and create a simple app around it. This will keep you motivated and enjoy learning the new language a whole lot more.
For example I am really into tabletop role playing games. So my very first app in React Native was a d20 dice roller. Very simple concept but it taught me a ton of different things. Package management, animation, rendering, state management , the list goes on.
For example I am really into tabletop role playing games. So my very first app in React Native was a d20 dice roller. Very simple concept but it taught me a ton of different things. Package management, animation, rendering, state management , the list goes on.
Updated
Alan’s Answer
The first step is that you want to learn, have a open mind, this path at the beginning is very hard , but after a time you are an junior developer , as all things take time. Ok right now star the way to learn, read and know about related programming, sintaxis, word reserved, why? Because if know how it works is much better your comprehension and surprisesongly you love it, remember if you love you are able to learn more , you must waste your time practicing and if you want and can pay a tutor is much better, but if you learn by yourself , I recommend trying and trying the exercises many times up to dominate , begin creating an screen that have add, update and delete, by the way select a language most difficult and more popular, don't waste your time trying understand the things doesn't related about programming for example don't pretend to now how work the database, you will have time for that, Concentrate about coding. Meet, join with people programmer they will give theirs experience and know yours best practices That's how I started.
Updated
David A.’s Answer
If you take programming classes in school, they will teach you the basic skills needed to get started. A lot of times, if you take multiple programming courses, in different languages, for example Java and C#, you will see there’s a more similarities than differences. A good teacher will explain why things work the way they do, and step you through the basics and give you projects to practice those skills.
There’s also many different ways to learn online. YouTube or freecodecamp, or W3 schools, all have a lot of content that isn’t too hard to follow.
The library is another good resource. You can borrow books on different skills you’re interested in, without spending a fortune. Some libraries also have partnerships with Lynda.com, which has a lot of tutorials, and usually has a fee, but with a library card you can get free access.
One thing I recommend is try taking everyday tasks, and breaking them down into the simplest steps. This helps you get an idea of the logic behind the task.
Another thing I recommend is maybe try starting with HTML. While it’s not technically a programming language, it’s a good way to start learning syntax and keywords, and how they repeat and fit together. It’s also an easy thing to start working on, without having to set up special development tools first.
Hope that answers the question and is some help. Good luck!
There’s also many different ways to learn online. YouTube or freecodecamp, or W3 schools, all have a lot of content that isn’t too hard to follow.
The library is another good resource. You can borrow books on different skills you’re interested in, without spending a fortune. Some libraries also have partnerships with Lynda.com, which has a lot of tutorials, and usually has a fee, but with a library card you can get free access.
One thing I recommend is try taking everyday tasks, and breaking them down into the simplest steps. This helps you get an idea of the logic behind the task.
Another thing I recommend is maybe try starting with HTML. While it’s not technically a programming language, it’s a good way to start learning syntax and keywords, and how they repeat and fit together. It’s also an easy thing to start working on, without having to set up special development tools first.
Hope that answers the question and is some help. Good luck!