If you had to give advice to a novice programmer, what would you say? Take a look at some of the helpful tips and suggestions these tech influencers and the lessons they have learned along the way.
1) Hands-On Experience
The best way to learn is through a project that you love, not through classes. Just get started, even if you know nothing.
Rajat Bhageria, is the founder of ThirdEye Glass and CafeMocha.org, author of What High School Didn’t Teach Me and in his spare time, he writes tech opinion and prediction pieces for the Huffington Post.
Don’t read…….just code…
Jothin Reddy Vedre is passionate about technology loves to program applications and do research. His interests lie in the field of Machine Learning and Robotics.
2) Seek Helpful Criticism
Get honest feedback on your idea and first version.
Sylvain Gauchet is passionate about lean startup, content marketing and mobile apps promotion. He loves finding a market, creating great new products or services and getting them known.
3) Use Tech Communities and Resources
I’d say stop reading textbooks, pick a simple idea and make it. Search Stack Overflow when you get stuck.
Stuart Hill enjoys writing about mobile development, the App Store and everything in that world.
4) Make Learning Fun
Find a problem that excites you. Let solving that problem guide your learning and your choice of tools.
Tim O’Reilly founder and CEO, O’Reilly Media.
5) Ask for Another Set of Eyes
Release early and release often, that way you’ll get honest feedback from your actual users, you’ll know if you’re on the right path with you idea, and if it’s worth your time and effort. Also, contribute on an open-source project if you haven’t, you’ll learn a lot from other people’s code and way of working.
David Hsieh is a software developer and passionate about tech startups.
6) Be Patient, Persistent, and Organized
- If you are finding it difficult, be patient with yourself.
- Read other people’s code. Particularly try to find well-written code. There are infinitely many ways to write even simple programs, and some ways are better than others. Other people will appreciate well-written, well documented programs, so write your programs for people to read.
- The key to good code is how your organise the parts of the program, how you modularise. Focus on putting closely related things together, and on making each part of the program do only one job.
Dr. Peter Schachte is a lecturer in the Department of Computing and Information Systems at The University of Melbourne. Schachte has been involved in programming language research and development since the 1980s.
7) Learn Various Languages
Schachte also suggests, “When you’ve become comfortable with one language, learn a completely different one. You should aim to learn: a low-level procedural language (C is a good choice) because it will give you a good understanding of how the computer actually operates; an object-oriented one (eg, Java, C++, C#) because they favour abstract datatypes and they’re widely used; a functional one (eg, Haskell, OCaml, ML, F#) because they emphasise what the program should do over how it should do it, and because they encourage high-level abstractions; a scripting language (eg, Python, Ruby, Bash) because they’re useful for quick hacks; and a logic programming language (eg, Prolog) because they broaden what functional languages teach you.”
8) Stay Updated on New Technologies and Languages
- Learn new technologies.
- Be open about criticism against your code.
- Document your code, not only for others but also for yourself. You won’t remember the reasoning you had a few months later.
- Do not write code that you won’t need. Because you will be responsible to maintain that.
- Learn at least one scripting language, ideally cross platform.
Mustafa Zengin is a software development engineer at Microsoft and his main interests entail: programming languages, algorithms, logic and semantics.
9) Learn from Others
Open every black box and see what’s inside.
Frameworks, libraries, languages, never mind if you can’t understand what you find under the hood on your first attempt. You can always put them aside and return to them later, just see to it that you can take them apart and have a look.
All the rules you have to follow when you first learn were invented by someone, you can make them yours to reinvent with some persistence. Steer clear of tools that put barriers in the way of this activity, those make you depend on them in the wrong way.
Jan Christian Meyer works at NTNU-IT / Scientific Computing, Norwegian University of Science and Technology, and received a degree in numerical computing and simulation.
10) Practice with Algorithms
Try running the algorithms by hand, you will have a deeper understanding. Then compare your understanding with step-by-step running.
Lucian Sasu, is a lecturer at Transilvania University of Brasov and teaches courses including: C#, Java, XML Technologies, Artificial Intelligence.
11) Pair Programming
Find a person or a few people who want to learn what you’re learning, and ya’ll do it together.
You push each other along, divide up the research work and then teach each other what each of you has learned. Teaching is an awesome way to speed-learn.
Jody Watson is a strong female tech influencer with over 10+ years of software experience. Several of those years include working as a programmer and technical writer for Microsoft.
12) Never Stop Learning
Learn at least one function language (Clojure, F#, Haskell) in addition to the object-oriented one you probably learned first. There is great benefit in understanding the different paradigms of thinking that accompanying different languages. There is far more value in learning a language that is vastly different from what you already know than one which is similar.
If you knew VB, C# while having a differ in syntax would not stretch your thinking much. Clojure, on the other hand, would stretch it dramatically.
Mario T. Lanza is an information systems developer at Modis and he enjoys discovering the necessary design and architect required to build powerful software and systems.
13) Code, Code and Code Some More
Practice makes perfect, or at least giving you the experience and expertise.
Practice doing real-world projects.
Anatoliy Kmetyuk is an aspiring software engineer who’s main objective is participating in non-trivial real-world projects in the areas of software engineering, web development and computer science.
14) Consider the Science Component
Programming is part of “Computer Science”, try occasionally look at it from a “Science” point of view. Just to say that there’s also a science part in programming. Knuth books are definitely too thick for most programmers, however, try dip occasionally into functional programming, trees, or OS design, will definitely be helpful.
Lui Ren has over 10 year’s experience in the field of visual computing and user interaction (UI), ranging over 3D graphics, real-time computer vision systems, data visualization, wearable computing, augmented reality, machine learning, biometrics, gesture recognition and character animation.
Check out more advice for novice programmers here.
Read more: Take A Closer Look Near The Shore