I recently remembered those talks about improving the forum and helping newcomers, so I figured it's time to start actually doing something.A lot of people coming here seek beginner guidance and pointers on where to exactly start. While we cannot provide individual pointers for everyone since every goal and project greatly varies, we can share our personal experiences and the means by which we have achieved our goals. Also we can share the useful tools we personally use and are aware of, so those seeking assistance can figure out the best solution for themselves.
While I am too lazy and unwilling to share my whole story at the moment, I am going to provide some useful links, hopefully helpful to future and already established programmers seeking improvement. Please note that this topic aims to differ from the original ''useful links thread'.
Starting to learn programming by attending classes may be ideal, but if you have the will and true desire to learn something then YouTube and Google can be just as good teachers. My first language was HTML, quickly followed by CSS and a slight scratch of JavaScript. I learned them by following a humble tutor on Youtube - after only 1 (yet lengthy, 1 hour) video I could make some barebones old-school websites. It took me 3 days to finish the video and digest it. What is important however, is that I
copied all of the tutor's actions after previously
listening to his words. The rest of the time I was
experimenting on my own - editing fragments, making my own combinations and so on... Remember those 3 words. Once you have understood the basics of the language, (and if you are a completely new programmer, then also make sure you understand the concept of logic and programming) you can then carry on to some more advanced methods of learning - reading actual books, analyzing more complex examples, reading online reference pages and attempting to reconstruct professional pages and applets.
A useful link to those studying web development:
http://www.w3schools.com/ Over there you may find tutorials, examples and tests for HTML, CSS, JS, PHP, Ajax, ASP and more.
Once the drive to build websites was out, I slowly entered my hacker phase. I was a born geek / nerd (can't tell the difference) so this was only to be expected. While playing certain MMO's (the old, cool ones) you would here about a notorious player who has these amazing magical tricks in his chest. When you gain trust you might also be passed a valuable exploit guide from the faction's leaders... This makes becoming a hacker very tempting... However it would be years before I actually succeeded at hacking something - it takes a wondrous combination of knowledge, bravery and creativity.
For those seeking a practice ground for hackers and security testing:
https://www.hackthissite.org/ You may also find some educative articles and if you do manage to succeed in the missions it is a precious experience.
It is also worth mentioning that I was greatly motivated by a true a**hole hacker from Canada, who I met ages ago in Galaxy Online (Sci-Fi MMO - best ever). Competition and racing can be a very powerful motivation factor - just look at the success of the Apollo missions! Now the next logical step would be to evolve past web development and get a more general picture of programming - regardless if you wish to focus solely on WD or not - would be to learn an actual programming language (client-based). Many would argue, but judging from personal experience, usefulness and overall success in educative programs I would say that C++ is a very good solution. Other suggestions would include Java, Python and C/C#.
C and C++ are very similar, while C# may be the most used (good choice for programmers aiming at mobile platforms).
I learned C++ at many places - school (not much, honestly), YouTube, web guides but the most thorough understand came from Sir Bucky - an amazing programmer with an even more amazing tutorial series on youtube.
You can find Bucky's tutorials (and others) here:
https://www.thenewboston.com/ Once you get the hang of C++, or require/wish for a deeper explanation of a function / library, visit
http://en.cppreference.com/w/ What am I working on now? Well, although my knowledge is still maybe at average, after learning everything from the above-referenced tutorials and some additional exploration of SQLite (Simple C++ database engine) I managed to create a barebones framework for a desktop assistant program - something you can read about if you search the forum for "J.A.R.V.I.S.". I also managed to make an encryption algorithm called Vaneheim, which nobody has managed to break so far (not that anyone has tried, but...). I put those project on hold, however, and decided I need to
learn more.
Some things are just too complex and if you are like me and want to learn about as much as you can, then you don't really have time to reinvent the wheel every time you want to try something new. The following are some useful tools, albeit aimed at users who have already mastered the basics and are ready to go the true next level...
openFrameworks - much like a Processing (Java-based) port for C++. Very useful for those in need of graphics, hardware control, sound etc. Also a good way to enable communication with development boards such as the Arduino (robotics, yay!):
http://openframeworks.cc/ Please note that the installation can be rather tough - not a lot of things are mentioned explicitly in most guides so P.M. if you need help.
It also comes with a lot of add-ons (a whole library of choices!)... The most notable of which is the following:
http://www.ofxaddons.com/categories/14-machine-learning Now this goes beyond the realm of newbie suggestions and is aimed at serious programmers or experienced A.I. enthusiasts seeking programming utilities for their new entity.
Also here is a C e-book in PDF format which you would not probably find for free, however it is always best to buy printed books and support the author's in whichever way possible:
http://www.filedropper.com/c-programming-ebookWhatever you choose to learn, there will always be traffic jams and roadblocks. There will also be things you cannot handle on your own, but you must always try! The single best way to become better and learn from your mistakes is to fix the mess you made by yourself!
http://stackoverflow.com/I also urge Ranch to check out the graphics aspect of this framework - openGL has never been so easy! I do realize that you are not working with openGL, tho.
It would be nice if this thread would be made more apparent to new visitors and if you guys would help by maintaining with new links and maybe even helpful tips/tutorials. Let's make it easy for the future!
I realize there are not too many links and I know most of you are aware of at least 10 more fine guides regarding HTML, C++ and whatnot. However, there is a reason for that, and that is that providing a single link (or up to one alternative) saves the beginner the hesitation and choice of which guide is better and which one is the best to be pursued.