This guide is proposed for students in software engineering-related fields who just started their journey. If you are lost and don't even know where to begin, what infromatics field you'd like to specialize in, this guide is for you ! It aims to make you a better problem solver and gives you an inside-out look of our vast field.
Get to know us better Our Website .
Contributions are more than welcome, if you have additional information that might help our community feel free to add them.
- Apply for Github Student Pack
- Watch CS50 course
- Learn The Art of Googling
- Learn How to Type Fast
- Learn HTML/CSS
- Create your first website from scratch
- Learn How to Use Github
- Linux
- Start Competitive programming
- Learn How to Automate Tasks with Python and/or javascript
- Learn Object Oriented Programming
- Next Step
Github student pack is a must have to all students, we put it at the top of the list because it may take few days or weeks to have access. So just apply for it, move on to the next step and it'll be ready when you're in need for it!
Useful Links | description |
---|---|
Github Student Pack | Free Access to developer Tools |
How to get it | Step-by-step guide to get the student pack |
CS50 is an on-campus and online introductory course on computer science taught at Harvard University and Yale University.
You can skip the first part about scratch and dive into C language. It is one of the best courses to teach you about data structures and how our machines think.
which is a must-know in order to better manipulate data structures.
Make sure to study data structures, python, JS and HTML through it because we'll need them later.
The course also provide a free online compiler to train on while going through the course!
Useful Links | description |
---|---|
CS50 Course | Harvard online Free course on YouTube |
CS50 IDE | an online IDE to practice while watching the course |
Learn the difference between Functional programms and Object Oriented Programs. Functional programming is the programming technique that accentuates the functional factors required for creating and implementing the programs. OOP or the Object-Oriented Programs are the conceptual programming techniques that uses objects as the key. I'd recommend to study OOP with Java. OOPs is considered to be the basic for almost every OP language. When you're familiar with it, you'll be able to understand most of the major concepts that any language incorporate ( like abstraction, multi-threading,..etc)
Google Search is a powerful tool, yet you're not using its full potential.
Know where to search for information, and how to search for it. understand the notion of forums,discussions and subreddits.
Searching the web is an art, I hope this article helps you to discover some of the tips and tricks that might make your life much easier.
Get familiar with StackOverflow, Medium, framework forums, github forums, documentation..etc
Also Master the indian accent.
Useful Links | description |
---|---|
11 tricks to master the Art of Googling | Medium article on how to Google |
-In order to view medium articles for free, just delete the website's cookies. You're welcome.
-You can get most of the Coursera paid courses by applying for financial aid. Also look for free access programs online (usually universities provide one).
-You can get most of the udemy courses for free by searching for 100% discount coupons:" {Name Of The Course} Udemy 100"
-Enter Discord groups where people Share Drives Full of Free courses.
-You could download most of the paid courses from FreeTutorials.us
Competitive programming teaches you how to be a better problem solver, you'll learn about complexity, data structures and algorithms. It'll teach you to write better code, and become better at debugging. There's a Tunisian Youtube Channel called Coding BeTounsi by Raouf. He'll take you through your CP journey. Big Thanks for his Great work !!
Useful Links | description |
---|---|
Coding BeTounsi | Educative Tunisian Youtube Channel for Competitive Programming |
Junior Training Sheet V7.0 | Training Sheet to track your progress |
Starting Competitive Programming - Steps and Mistakes - YouTube | Starting Competitive Programming - Steps and Mistakes - YouTube |
Typing fast on your keyboard is not a myth or something you only see in movies. Actually you can learn how to do that in 30 days or less (1 hour practice every day). Trust me your neck pain will be gone and you will use your computer for longer period of time. Here's some useful links that will help you achieve that goal:
Useful Links | description |
---|---|
Keybr | This web application will help you to learn touch typing, which means typing through muscle memory without using your eyesight to find the keys on the keyboard. It can improve your typing speed and accuracy dramatically. |
10 Fast Fingers | Typing Test, Competitions, Practice & Typing Games. Typing Competition Who can type faster? Top 1000 Challenge yourself! |
This will come in handy in future projects. you'll have to learn HTML sooner or later. You don't need to memorize the commands by heart, just understand the basics and put in mind the keywords to google when you need a specific command. Also I'd advise you to learn by testing. Platforms such as GeeksforGeeks and W3Schools offer this feature using their online compilers for free.
Useful Links | description |
---|---|
GeeksforGeeks HTML Course | free HTML Course with online compiler to test. |
W3Schools HTML Course | free HTML Course with online compiler to test. |
After learning HTML and CSS and before jumping into JavaScript try to use Bootstrap, it's a free and open-source CSS framework that will help you style your project in no time.
It's time to create projects! Try to put your knowledge into practise through coding a simple website ( blog page, protfolio website ..Etc)
There's a great book called Automate The Boring Stuff with Python That I'd really recommend. You could create a web scraper and scrape data. May I recommend Scrapy, or BeatifulSoup & Selenium.
Useful Links | description |
---|---|
Automate The Boring Stuff With Python | Free PDF book with Python Code blocks to test |
You could get any book & research article, pdf version using:
-Sci-Hub
-pdfDrive
Learn the notion of packages and open source. Also installing programming softwares on linux is much easier than windows, and no matter how shitty your hardware is, Linux will run smoothly.
Useful Links | description |
---|---|
Top 10 Reasons Why You Should Use Linux | make your life easier with linux |
Learn the concept of version control. Create Repositories, put your simple website and scraping tool that you created.
Useful Links | description |
---|---|
git - the simple guide | just a simple guide for getting started with git. no deep shit ;) |
GitHub Learning Lab |
You simply need to start. instead of watching courses in order to get the certifications, Learn by actually doing. Project based Learning is the best way to get the hold of a concept. when you start a project you'll find out that you didn't get the hang of a concept that you thought you have. so test yourself practice more !
You can stay up to date by joining our facebook group.
Happy Coding.
Sabkhi Out 🎤