{"id":19262030,"url":"https://github.com/hacksu/self_learning_guide","last_synced_at":"2026-02-27T23:04:14.956Z","repository":{"id":149141599,"uuid":"248084702","full_name":"hacksu/self_learning_guide","owner":"hacksu","description":"A guide for getting started with self learning and working on personal project","archived":false,"fork":false,"pushed_at":"2020-03-17T23:16:34.000Z","size":6,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-01-05T10:20:58.880Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hacksu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-17T22:22:32.000Z","updated_at":"2020-03-17T23:16:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"d4f6750f-f49f-4221-adee-e4e1af80c04d","html_url":"https://github.com/hacksu/self_learning_guide","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacksu%2Fself_learning_guide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacksu%2Fself_learning_guide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacksu%2Fself_learning_guide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacksu%2Fself_learning_guide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hacksu","download_url":"https://codeload.github.com/hacksu/self_learning_guide/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240364295,"owners_count":19789756,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T19:29:26.464Z","updated_at":"2026-02-27T23:04:09.918Z","avatar_url":"https://github.com/hacksu.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Getting started with self learning\n\nThis guide was created to serve as an example of what the self learning process looks like.  More specifically, it will discuss learning new programming languages, libraries/frameworks, and getting started with personal projects.\n\n# Programming Languages\n\nLet's face it, at one point or another (as a developer at least) you're going to be expected to have to learn a new programming language on your own.  Lucky for you, dear reader, it is not a wildly difficult thing to do.  There are several approaches one can take when picking up a new programming language (keep in mind this isn't *every* method, just some good starting points).\n\n### Official documentation\n\nUsing the official documentation for a programming language is typically a good place to get started.  Most modern programming languages have a beginner guide on their website to help get started with the language.\n\nFor example, let's say we want to learn Python:\n1. Go to [the official Python website](https://www.python.org/)\n2. Download Python if needed\n3. Looking at the navigation bar, to do **Documentation** -\u003e **Beginner's Guide**\n4. Bam, a fairly detailed guide to help you get started\n\n### Findining a beginner's guide on YouTube\n\nSo these official guides can be, well, difficult to follow sometimes.  Maybe they're hard to understand, or the website is just ugly.  Luckily, there exist some very good guides written by other people.\n\nAgain, let's use Python as an example:\n1. Search Google for `python beginner's tutorial`\n2. Wow, lots of options!\n\nThere are some pros and cons to this approach.  \n\nYou have a lot more options here, meaning you can find something that works better for you and is better tailored to your learning style.  \n\nDown side is there are a lot of options, and it might involve going through a few tutorials to find one you like.\n\n### YouTube tutorials\n\nSimilar to written guides that can be found through Google, many good video tutorials also exist on YouTube.  You might see these when you do a Google search, or you can search on YouTube for good beginner tutorials.\n\n# Libraries/Frameworks\n\nHaving to spend time learning new libraries/frameworks is a fairly common occurrence for software developers these days.  Luckily, picking these up on your own is (usually) easier then having to learn a new programming language.\n\n\nThe same principles for learning a new language apply here:\n1. Official documentation is a good place to start\n2. Searching Google for beginner guides is also a good choice\n3. If videos are your thing, find a tutorial on YouTube\n\n# Personal Projects\n\nStarting a personal project is a bit more complex topic.  An attempt will be made to try and generalize how to start a new project, but keep in mind this can vary from project to project.\n\n### Figure out what you want to make\n\nIt can be tempting to just think \"I want to make something cool with Python\", but usually that's not enough to get started.  Try to think of something cool you would want to make, like maybe a Discord bot or a portfolio website.\n\n### Brainstorming ideas\n\nHere are two approaches you could take to come up with some ideas:\n1. Think of a commonly occuring issue, or times you wish you had a program to do something, and make it yourself\n2. Google project ideas\n\nThe first method is more of a \"go do it yourself method\", where you can create new solutions for your own problems.\n\nGoogling project ideas is another good option, for when you want to make something for learning purposes but you just don't know what to make.\n\n### Creating the basics\n\nNow that you have an idea of what you want to do, you can get started.  You might already know where to get started, in which case go do your thing.  However, there is no shame in not quite knowing where to get started.\n\nIf you're struggling to find a starting point, use Google!  For example, let's say we wanted to make a Discord bot and use Python for our language.  Searching `python discord bot tutorial` on Google will yield some helpful starting points.\n\n### Use Google to your advantage\n\nIf you get stuck somewhere while working, use Google to try and solve your issues.  Googling things like `how to do x in python` or error messages are great ways to try and work out your problems on your own.\n\nI know some people feel weird about using Google to find answers to their questions, but know that even the best software developers do this.\n\n### Show off your project to your friends\n\nThis isn't a requirement, but you should be proud of what you've made, so show it off to your friends!\n\n# Wrapping up\n\nIf there were one major thing that should be taken away, it should be that Google is a useful tool.  Many developers use it for many different purposes, like fixing bugs and learning new technologies. I would encourage you to utilize search engines in your development flow if you do not already.\n\nIf you are a KSU CS student reading this, feel free to reach out to us via the CS or hacKSU Discord with questions/suggestions.\n\nHappy coding!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhacksu%2Fself_learning_guide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhacksu%2Fself_learning_guide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhacksu%2Fself_learning_guide/lists"}