It is generally agreed up that learning programming is made a lot easier by initially working with a ‘high level’ language such as Python. There are a huge amount of resources online to help a student learn. Many of these are free, though some of the heavily-structured courses (such as Lynda.com) require payment. Sites such as codingdojo.com, khanacademy.org and code.org provide interactive an environment for writing and compiling code using most popular languages.
It is widely considered that the best way to learn programming is through hands-on practical experience, and it is often better to dive right in to a project than to spend too much time learning syntax. Navigating and making sense of new technology by oneself can be a great learning experience and is one of the core skills of any good programmer.
Finding a practical use for programming and becoming invested in a personal project can be a great motivator to learn and keep interest high. Patience is key when learning to code, and it is important to not become jaded from the volume of unfamiliar concepts that will arise.
Grasping the fundamentals of programming from the very beginning will make it a lot easier to learn the more complex concepts. Before writing a single line of code, it is extremely valuable for the beginner to become familiar with these before proceeding.
Finally, finding a mentor can be a huge advantage – often a learner will not be able to grasp concepts by themselves and may require feedback from someone else in order to progress. This is why pair programming is so popular in the software industry.