Author Topic: The Big 'ol list of Programming Resources  (Read 1965 times)

0 Members and 1 Guest are viewing this topic.

Offline TodTheFox

  • Licensed Lazy Loiterer
  • Green Level
  • *
  • Posts: 569
  • Candies: 49
  • Avatar by Proto
  • Fursona Species: Red Fox
The Big 'ol list of Programming Resources
« on: January 07, 2015, 07:52:32 pm »
    Welcome to the Big List of Programming Resources and Learning Material!
    In honor of my 100th post on this site (A Milestone I thought I would never achieve) I decided to post this expansive list of all of programming resources I am both aware of and recommend others utilize.Some many times in my daily life I hear about people who want to learn to program but rather than getting active and pursuing knowledge they simply sucumb  to apathy and procastinatination. I so often try to a credit this problem to the seemingly unanswerable questions for many people seeking to enter the field, "Where do I even begin?", "Is it even possible to learn without an official course?", "Are the free resources out there any good?". I believe those and other question of the like can be almost daunting enough to deter many from even starting. Others I have seen try to enter the programming field but get snagged of bad tutorials or broken bits of code and become frustrated with trying to debug code they don't even fully understand themselves. With this thread I hope to circumvent many hardships and light a path with the numerous resources I have encountered in my long journey.

    Where to begin?
    There are a number of excellent starting points for budding programmers scattered across the vastness of the interwebz but my personal top recommendations are as follows:

    Code.org: Code.org's hours of code are an excellent first step into programing as they will introduce you to some of the fundamental concepts of programming while using an un-intimidating block based approach to programming. As they're name implies each one takes only an hour (And you need only take one, although some may be better than others, so watch out). At the end of it all if you've created an account with the website you get a nifty certificate which carries no weight in the industry but is just nice to have for sentimental reasons.

    Scratch.mit.edu: Scratch is a great next step from completing your first hour of code as it too utilizes simple block based programming to write fun little applets of sorts. Scratch is very well documented and can easily be used to create neat little games and other applications all the while you develop the Logic and problem solving mindset associated with programming.

    Appinventor.mit.edu: If you have a tablet and or Android phone (or get the Emulator to work) App inventor is a great place to move onwards from Scratch as it also utilizes Block based programming. Unlike Scratch however App inventor is more complex and allows for even more possibilities for fun and easy to create apps. Like Scratch App Inventory is very will documented as it features built in tool-tips which appear when hovering your mouse over any block.

    Codeacademy.com: For those who want to dive straight in to Text Based Programming Codeacademy offers a wide range of Web development and scripting courses that are well structured and utilize an in browser editor (No Need to download an IDE!) Codeacademy's courses will walk you through learning the basics-intermediate and in some cases even advanced concepts of your programing language of choice with fun and practical activites.

    Computercraft.info: For those of you Miencrafters who love to dabble in mods, Computercraft is an excellent way to start practicing and learning some key concepts of programming. The Mod utilizes Text based Lua programming that can be done either ingame through the mod's rather primitive editor or with notepad++ (Or any text editor). Computercraft provides an unintimidating, easy to learn API and makes use of a shell to easily allow for text and simple graphic based applications. CC is also well documented, coming with ingame help tools, a online wiki, forums, and countless tutorials spread across the forums and youtube.

    Bear in mind these are just my personal recommendations, if you so chose, the Java and C++ series by John Purcell from Cave of Programming are also excellent Starting points (See below for link). I would also like to mention that CodeAcademy and Code.org's are the only sites on that list with structured courses that I am aware of. Scratch, AppInventory, and Computercraft are all well documented but to my knowledge are somewhat lacking in a professional courses built around them. (Although Computercraft has numerous Youtube series' dedicated to it). I recommend uses the above mentioned tools for practicing programming concepts, trying out new things, and just generally hammering at your trade to further develop the logical/problem solving mindset.

    Helpful Websites
    I have here a list of helpful websites to ease you on your quest to find additional information on Programing:

    Udemy.com: With the amount of times I've refrenced people here it's only natural this site should be at the top of my list for helpful websites. This site has a plethora of free online video courses covering a wide range of topics. The site is an excellent first stop when searching for information on a certain topic or even just looking to see what kind of free courses are out there for you. (Note the Site does also have Courses which cost monies but like steam, occasionally discounts appear on these courses)

    The Java trails located at:docs.oracle.com/javase/tutorial/ are a fair way to start learning about Java or some it's many packages in the Java library. Although I personally recommend starting Java with John Purcell's Udemy course and then moving onward to these trails to learn about topics and packages not covered in his course this site does offer a fully featured course which will take you from hello world to the Advanced topics of Java.

    Khanacademy.org: I haven't gotten to use Khan Academy as much as I like too but I am told it is an excellent site which offers several courses on Computing inculding it's own Hour of Code. The courses there seem to be more targeted at beginners and as such it serves as a fair method for getting introduced to core programming concepts.

    The Lua Refrence Manual located at: lua.org/manual/5.1/ has a wealth of information regarding the programming language is being that it is the closest you can get to API documentation (That I know of) it is a vital tool for those who wants to take their dabbalings in Lua strides forward by getting all the nitty gritty information and language specifics you could posibly ask for.

    The Java API documentation located at: docs.oracle.com/javase/7/docs/api/ is an immensly critical tool for new Java developers as it provides a one stop site to get all the information you need on Java's many built in packages in the Java library.

    Free Courses
    There are a number of free courses to be found all across the interwebz but unfortunately my knowledge base limits me to a number of particularly useful free courses on Udemy which are more than note worthy:

    Java Tutorial For Beginners located at: udemy.com/java-tutorial/#/ is a course I highly recomend those interested in Java take as it will get you from Hello World to the advanced concepts of Java while touching up on a few packages along the way. After taking this course I can almost guarantee you you're read to start diving in to the Java library with Java Trails to start learning things like Java Swing and Concurrency.

    C++ Tutorial For Complete Beginners located at: udemy.com/free-learn-c-tutorial-beginners/ is a course created and voiced by the same person who brought you the Java Tutorial For Beginners. Though I have yet to watch this series for myself and am unable to vouch for it's quality I do hold it's creator in glowing terms and therein hold this series by the expectations he has set with his other works.

    Java Multi-threading by John Purcell located at udemy.com/java-multithreading is a course specifically dedicated to Concurrency, like the C++ tutorial I cannot vouch for it's quality because I haven't completed the series but yet again I hold the creator by high expectations and feel this will prove to be an invaluable resource to those who have sucessfully completed Java Tutorial for Beginners.

    Java Design Patterns and Architecture located at: https://www.udemy.com/java-design-patterns-tutorial is a series dedicated to commonly used Design patterns in the industry and unlike the other tutorial series has more to do with the way in which you write your application than the actual writing of the logic behind it. I am told the concepts found in this series, while being targeted at Java, are applicable to a multitude of other languages.
    [/list]

    Tools for Programmers
    Here are a number of IDE's, helpful libraries, and other tools designed to aide programmers in their daily life.

    Eclipse: I find Eclipse to be one of the most commonly used IDE's by Java Developers, odds are good most tutorials and video series you come across will make use of this IDE so it's good to at least get acquainted with it. The IDE is open source and updated quite frequently, it of course is also free like everything else posted here :). Link: eclipse.org

    Netbeans: Netbeans is a free IDE sponsored by Oracle and used to program languages such as, Java,  C/C++, and HTML. Like eclipse it is open source, and regularly updated! For those using Java the IDE also comes with a nifty GUI builder. Link: Netbeans.org

    MonoDevelop: Monodevelop is an open source free IDE which is designed for web and application development using the web languages and featuring full support of all C languages(C/C++/C#). I believe the popular Game Engine unity 3d is also using a modified version of this application as it's primary editor which comes packaged with the software.

    Git: Git is an invaluable asset to any Programmer as it is the leading version control/collaboration system that is widely used across the industry. Version control in a nutshell is the ability of a programmer to track and if needed revert to previous versions of a file or set of files such as an application. That description alone is greatly dumbed down and underwhelming by comparison to just how fully featured and immensely useful this system really is. I cannot stress it enough, even if you have no intent on using git for smaller projects getting to know git now will greatly aid you in almost any career/job where programming is involved. Git's Main website is located here: http://git-scm.com/ and heres a helpful book: http://git-scm.com/book.

    OpenGL:: OpenGL is a library which is available for a wide range of programming languages and can be used to create 3d (and 2d) elements in your applications/Games. For those who don't know it is utilized in the popular game Minecraft and several others. I can't speak much on it's behalf as my knowledge regarding it is sketchy at best however I understand it is widely used and regularly updated (And also Open Source). The main OpenGL page can be found here: opengl.org


    Additional Resources and Honorable Mentions

    Game Development Essentials: A Book Series by Jeannie Novak: While these books are obviously targeted at Game Development they offer such wealths of information on the topics they cover that I simply had to give them an Honorable mention here as they can be a great resource for those looking to enter the Game Development Series. Unfortunately these books are not free but I recommend checking out your local library in case they have any of these books. It's well worth giving these books a read through and honestly as opposed to a lot of other books on programing and other topics these books are among some of the best formated and well put together I yet encountered.

    Unity 3d: Unity 3d is a highly prominent game engine in the industry and has been used in the production of countless titles such as Unturned and many others. Unity 3d has both a free and subscription version and is regularly updated with many new features to play around with. The engine supports many scripting languages including Javascript so it can be used by newer programmers although I do not recommend this as this is an industry grade Game engine that can be difficult to learn with and use at times. Link: http://unity3d.com/. (Please note Unity supports both 2d and 3d).

    Love: Love is a simple 2d game engine created to support the usage of Lua in development of games. I haven't used it extensively but I recommend it to anyone who is seeking to create some simple Lua based games. Link love2d.org

    In closing, I will continue to update this list as I find more noteworthy resources or change my current feelings about a number of resources which have been intentionally left out. I hope others find this list helpful. (And also really hope the staff will sticky it so I don't have to invent some way bump it without double posting when I edit in new resources to the OP)
    And so I will leave you with this:


    • Pride Flag - asexual
    • Pronouns: He/Him/His

    Offline Skiffy Wolf

    • Green Level
    • *
    • Posts: 629
    • Candies: 26
    • No idea what I'm supposed to put here.
      • DeviantArt - Charlie-Fan
    • Fursona Species: Wolf
    Re: The Big 'ol list of Programming Resources
    « Reply #1 on: January 07, 2015, 08:03:09 pm »
    A few things I would like to add. If you're on Mac and want to do C, C++ or Objective-C then it would be best for you to use X-Code which is free on the Mac App Store. Also for helpful resources I think that Stack Overflow is a very useful website. http://stackoverflow.com/

    Offline Sondash128

    • The Doge Master (programmer and blogger)
    • Red Level
    • *
    • Posts: 36
    • Candies: 3
    • I'm baaaack
      • FurAffinity - ImperfectSilverAlltropics
      • Funny Pic Time (occasional strong language)
    • Fursona Species: Tiger shark; alt birb
    Re: The Big 'ol list of Programming Resources
    « Reply #2 on: January 21, 2015, 01:10:02 pm »
    Thanks man, I saved the links.
    • Pronouns: He/Him/His
    I'm so sorry python gods, python is far superior to ocaml, and I have failed you guys by thinking otherwise.

    Offline TodTheFox

    • Licensed Lazy Loiterer
    • Green Level
    • *
    • Posts: 569
    • Candies: 49
    • Avatar by Proto
    • Fursona Species: Red Fox
    Re: The Big 'ol list of Programming Resources
    « Reply #3 on: April 21, 2015, 01:59:11 pm »
    Finally It's time for the first real update to this list in months! (I meant to update this a long time ago but I've just finally got around to it.) Most of these appended resources will be more specialized towards Java and Java based Game Development but that's more because those are the resources I hunt after and actually read through so they are the only ones I can really recommend and have links on hand to do so. I will try to append more resources for other languages in the future.

    Additional Helpful Websites:
    stackoverflow.com/ As Skiffy Wolf Skiffington mentioned this site is an excellent resource for finding solutions to troubling problems with code either by searching the already extensive list of questioned and solutions or by opening up your own inquiry.

    www.w3schools.com/ This site offers a wide range of free tutorials related to Web Development and it's associated programming languages. It's an invaluable resource for any Web Developer and I highly recommend checking it out if you haven't already.

    https://msdn.microsoft.com/en-us/library/67ef8sbd(v=vs.90).aspx This is a guide for C# put together by Microsoft (or at least I would like to believe it's put together by Microsoft considering it's hosted on site they own). I haven't myself taken an in depth look at it but I believe it will be of some use for those looking to learn C#. If you already know Java you may wish to read this guide instead https://msdn.microsoft.com/en-us/library/ms228602(v=vs.90).aspx.

    http://www.tutorialspoint.com/design_pattern/index.htm This is a website literally chalk full of useful design patterns for Java and examples (of sorts) of their implementation. Not entirely critical if your a rebel like me and don't follow any one design pattern but still it's good to take a peak, even if you don't program Java I do believe many of these patterns may well still apply to your own programming language.

    Additional Tools for Programmers
    www.lwjgl.org An acronym for Light Wieght Java Game Library, LWGL provides a set of Java bindings for the Native Code APIS: OpenGL, OpenCL, OpenAL, and GLFW. To append my previous statement regarding OpenGL, LWJGL is the library used by the popular title Minecraft and numerous others. I would definitely say it is a must have for any Java Game Developer and though it can take some time to get into it's well worth the investment. If you are however looking to go into 2d Game development in Java I highly recommend use of Slick2d an extremely well optimized Java game engine which makes use of LWJGL: http://slick.ninjacave.com/. LWJGL has it's own wiki found here: http://wiki.lwjgl.org/index.php?title=Main_Page but be advised that I have found most of the information in that wiki is related to the LWJGL version 2.0 where the latest version is actually 3.0. For the sake of completeness here is a tutorial series that covers some LWJGL 3.0 basics: http://goharsha.com/lwjgl-tutorial-series/.

    Additional Resources and Even More Honorable Mentions
    http://gafferongames.com/ This is a rather insightful blog on Gamedelevoplment that covers some rather critical topics and is a good even if only to inspire you with your own ideas for varriant approaches to the solutions in the blog. Even if you don't program in the language used in the blog it's still worthwhile to take a peak.

    http://slick.ninjacave.com/ I know I mentioned Slick2d further above but I felt it was neccesary to give it it's own entry here in the honorable mentions section. If you didn't already read about it above, Slick2d is a highly optimized Java Game Engine wrapped around LWJGL and is quite simply a must have for anyone looking to get into Java 2d game development as it both removes the time hog of writing your own (most likely less optimized) game engine and due to it's optimization, more or less removes the issue of performance in Java games. It's wiki can be found here: http://slick.ninjacave.com/wiki/index.php?title=Main_Page. And for the sake of completeness it's Javadoc is located here: http://slick.ninjacave.com/javadoc/

    http://jmonkeyengine.org/ Jmonkey is a 3d Java Game engine I discovered some time ago which I believe is worth checking out. At this time I have not tried it so I can't vouch for it's optimization but I felt it was worth an honorable mention here. If someone has used it I'd love to hear about your thoughts on it :fox-;):.

    « Last Edit: April 24, 2015, 12:17:52 pm by Tod Atsu »
    • Pride Flag - asexual
    • Pronouns: He/Him/His

    Online Amelia

    • Candy Witch
    • Administrator
    • *
    • Posts: 11117
    • Candies: 813
    • Boo
      • FurAffinity - MysticSolstice
      • Twitter - MysticSolstice
    • Fursona Species: Kangaroo
    Re: The Big 'ol list of Programming Resources
    « Reply #4 on: April 21, 2015, 02:05:42 pm »
    Thank you for this! It will definitely help a lot :fox-:):
    • Award - Beta Tester
    • Flag - canada
    • Site Donor
    • Pride Flag - gay
    • Pronouns: She/Her/Hers
    • Award - Graphic Artist

    | ToyHou.se | ThisCrush | Q&A |
    Icon by Serena | Signature by SpazzCraft

    Offline TodTheFox

    • Licensed Lazy Loiterer
    • Green Level
    • *
    • Posts: 569
    • Candies: 49
    • Avatar by Proto
    • Fursona Species: Red Fox
    Re: The Big 'ol list of Programming Resources
    « Reply #5 on: December 31, 2015, 01:14:45 pm »
    I haven't had much time recently to hunt down new resources to put up here but fortunately my former Computer Science and Software Engineering instructor pointed out these two gamified websites teaching programming languages like Javascript and Python

    The First is called Codecombat: https://codecombat.com/
    In my experience with Codecombat offers a top down, dungeon crawl style programming game that teaches the Javascript and Python scripting languages. I have only had the pleasure of trying out it's impresive hour of code so I'm entirely familiar with all the systems in place on the site but from what I've seen I think I can safely say the site is well worth trying out if your a begging programming looking to learn the basics of programming.

    The Second is called Codewars: http://www.codewars.com/
    Unfortunately I haven't looked very far into this site but my former instructor spoke very highly of it and as such I feel it's worth posting here. Especially considering it offers support for a larger variety of programming languages including my personal favorite, Java. I would write more about it if I could but my lack of internet has hindered my ability to fully review the site however I trust the word of my former instructor and hope you will find the site useful in learning to program.

    At any rate, I hope you find these resources helpful and without further ado, Happy Coding!
    • Pride Flag - asexual
    • Pronouns: He/Him/His

    Offline flurrin

    • Purple Level
    • *
    • Posts: 2012
    • Candies: 128
    • sushi dog
    Re: The Big 'ol list of Programming Resources
    « Reply #6 on: December 31, 2015, 02:33:00 pm »
    Codewars looks interesting  :fox-:P:
    • Flag - britain
    • Award - Holiday Hunt participant
    • Pride Flag - androgynous
    • Pronouns: any
    profile pic by ShopePapilloma

    Offline Revi

    • New Member
    • *
    • Posts: 1
    • Candies: 0
    • Fursona Species: Fox
    Re: The Big 'ol list of Programming Resources
    « Reply #7 on: January 09, 2016, 04:15:11 pm »
    Great summary. Thanks for your effort.

    If you want to use/learn game programming with C++ I recommend SFML.
    It is very simple to understand and the documation is clear.
    Also there are versions which works with other languages but it's natively written in C++.

    http://www.sfml-dev.org/index.php


    An easy way to start with programming is processing. It is a language based on Java which allows you to get really quick results.
    Thats the reason why we use processing at school.

    https://processing.org/


    Offline Lucky7wolf

    • Space Wolf
    • Red Level
    • *
    • Posts: 65
    • Candies: 8
    • Forever has a 7.
    • Fursona Species: Wolf
    Re: The Big 'ol list of Programming Resources
    « Reply #8 on: June 17, 2016, 10:28:52 am »
    In 6th Grade, our class used something called Khan Academy for math. On the site, I also found out something about Computer Programming. So, I learned it's version of processing, and I learned the basics of coding! Once you know the basics of coding, then you can easily learn other coding languages.

    Here's the site:

    https://www.khanacademy.org/
    • Pride Flag - genderfluid
    • Pride Flag - pansexual
    • Pronouns: He, Him, His
    Tasty old candy cane!
    Skype @ luckywolfx7 if you want.
    Maybe I'm these flags?
    Thanks to the wonderful Zagan for the icon!

    Offline Sergsune

    • queer af
    • Orange Level
    • *
    • Posts: 115
    • Candies: 19
    • *yaasssing intensifies*
      • FurAffinity - Sergsune
      • Weasyl - Sergsune
    • Fursona Species: Sergsune (Sergal/Kitsune Hybrid)
    Re: The Big 'ol list of Programming Resources
    « Reply #9 on: August 23, 2016, 09:09:26 am »
    Taking Java Programming at school this year, this will be really helpful! Thanks!
    • Pride Flag - pansexual
    • Pride Flag - agender
    • Pronouns: They/Them/Their
    Avatar art by me!

    Pansexual  |  Agender
    Mah art thread

    ahuhuhuhuhu~

    Offline VRT

    • Lives off sugar and bad ideas
    • Orange Level
    • *
    • Posts: 145
    • Candies: 11
    • Mood: Delicious
      • Twitter - @VRTCANDY
    • Fursona Species: Cyborg Bat
    Re: The Big 'ol list of Programming Resources
    « Reply #10 on: December 14, 2016, 04:17:40 am »
    I've found that LWJGL (Light Weight Java Game Library) and Slick2D are good for if you are using Java. Minecraft uses LWJGL in fact. Though I still can't understand how to write a sweep and prune algorithm and it makes me bleed inside to implement O(N^2) complexity when I don't need to ;_;
    • Flag - usa
    • Pride Flag - aromantic
    • Pride Flag - asexual
    • Pronouns: He/Him/His, but really any are fine, I don't personally mind
    INTP

    "The horizon bears such a beauty
    We'll never know how much we can't see" - TesseracT

    Creatures of shadow will soon consume me.

    Online Undertaker

    • "Do you want to see how it feels to sleep in my custom-made coffins?"
    • Purple Level
    • *
    • Posts: 2112
    • Candies: 80
    • "How sad it would be, should laughter disappear."
      • DeviantArt - BluefoxLongtail
      • FurAffinity - sprite-limehead
    • Fursona Species: Retired Shinigami
    Re: The Big 'ol list of Programming Resources
    « Reply #11 on: May 28, 2017, 12:48:07 pm »
    Is there anything on VB Classic. 92-03
    • Award - Beta Tester
    • Pride Flag - omnisexual
    • Pronouns: He/Him/His

    GIFs are the property of their respective owners.

    ThisCrush | SoundCloud | AMA/Q&A | Have something to ask me? (Off-site)
    ENTJ | Field Marshall | ♥ The wonderful young lady, that I love. (click) ♥

    Offline VRT

    • Lives off sugar and bad ideas
    • Orange Level
    • *
    • Posts: 145
    • Candies: 11
    • Mood: Delicious
      • Twitter - @VRTCANDY
    • Fursona Species: Cyborg Bat
    Re: The Big 'ol list of Programming Resources
    « Reply #12 on: June 17, 2017, 03:08:31 am »
    I've found that http://www.learncpp.com has been very useful in learning C++, following it now.
    • Flag - usa
    • Pride Flag - aromantic
    • Pride Flag - asexual
    • Pronouns: He/Him/His, but really any are fine, I don't personally mind
    INTP

    "The horizon bears such a beauty
    We'll never know how much we can't see" - TesseracT

    Creatures of shadow will soon consume me.