CS-Freshers
Table of Contents
- Welcome
- About
- Learn your first language
- Learning basics
- Online coding competitions
- Websites to Visit
- Technologies
- Write Blogs
- Go to Hackathons
- Join developer communities in your area
- Meetups
- Open-source contributions
- Internships
- Bug Bounty Programs
- Thank you!!
Welcome :)
Welcome to the world of tech-wizards. Good to see u here.
About
A guide-page for all freshers who just took Computer Science as their major. The following is a list of all things in our community that you may not be aware of yet.
Also, the order of topics is kept in focus for beginners for those who are not sure what to do first.
Learning your first language
While learning your first language, kindly give more time to practising it. Make your fundamentals strong and improve coding style, learn to add better comments. Then moving further try to write optimised code.
If your programming concepts are clear and you have a strong foundation in your first language, then learning a new language will just be a matter of 7 to 8 hours max.
Here are a few good reads for a better coding style:
Learning basics
Cool, if by now you have completed Learn your first language then it’s time to build some basics. The following is a list of very common things that you may use as a developer.
- Data Structures - Geeks-for-Geeks
- Algorithms - Geeks-for-Geeks
- Basic HTML5, CSS3 - W3-School
- JavaScript - Mozilla-JavaScript-Guide
- JSON, YAML, XML
- Linux (Ubuntu recommended for beginners)
- Docker - Docker
- Git - the version control system - Git-branching
- RestAPI and GraphQL
- Databases (Mysql, MongoDB,..)
- Makefiles and compiling code in terminal
By now you may have completed your first semester and you have learnt to code properly and know some basics. So, you are looking forward to practising your knowledge. You have two options:
- Online coding competitions, (which is my next topic) and
- Making some projects
Here is a good list of projects ideas that you can make. You can also, add your project’s repositories to your GitHub account. You can share these repositories link with others to give them an idea about your skills.
Online coding competitions
There are many good online coding competition sites for you to practice your skills. Once you get comfortable with the basics, then you would love to practice or compete with other programmers around the globe.
Please do not be disappointed if you are not able to solve such competitive problems at the beginning. Just keep trying or ask help from someone who is already involved in solving such problems.
When you begin, start from easier problems and then move towards more tough one as you gain confidence.
Checkout this io-tutorial guide by google
Some Online Coding competition sites are-
- Codechef
- HackerEarth
- HackerRank
- TopCoder
- List of Live Competitions
- Many others can be added to make this list very long. So go here for more.
Websites to Visit
There are some useful sites that you may visit regularly to get informed to do your technologies even better and learn new techs, frameworks, libraries, etc. Checkout this list.
Technologies
Ok, so you have done above said things, cool!
But now what? keep making useless projects doesn’t make sense and now you are in your 2nd year(completed 2 semesters).
Need to do something that will get you landed with a good package in a MNC two years later.
First, quickly google these technologies and try to understand what these are and then continue reading further-
- Machine Learning, Deep Learning
- Blockchain
- Serverless
- BigData
- Extended Reality- XR {Augmented reality(AR), Mixed Reality(MR) Virtual Reality(VR)}
- Multi-access Edge Computing(MEC)
- Quantum Computing
- Software Defined Networking(SDN)
- Network Function Virtualization(NFV), Virtual Network Functions(VNF)
- Internet of Things(IoT)
Computer Science is huge and you cannot master everything. You need to choose a domain of your interest. The above was a list of various new fields that this decade saw. There are other domains like Cybersecurity, Web Development, Game Dev, Graphic Designing(3d, 2d, logo, poster, UI/UX, etc) also that are quite old but you should consider as they do have high pay.
Choose a domain that interests you a lot. If you are confused then try to understand them more and see what should be best for you. Take your time as much as you want.
Once you have chosen then start from basics and then move towards advance and keep reading every day. Then move towards reading specifications docs, internet-drafts, standards set by different global standard-setting organisations like ETSI, IEEE, IETF, etc. and discover possibilities of future development in your technology. Start working on those.
Now, in the following list, the order doesn’t matter. You can try them as you want, once you have gone through the above steps-
Write Blogs
You have come a long way by now after crossing many hurdles, and now its time to give back to the community. Whatever you have learnt in your technology start sharing your knowledge to the world through blogs or YouTube videos. Also, this will help you add more followers to your twitter account ;)
Go to Hackathons
Now, you have enough knowledge. Start going to hackathons. Make new teams meet new people. Explore more.
Read more about hackathons here.
Check this list you may find some interesting hackathons.
Join developer communities in your area
Usually, there will be some programming communities in your area which you can join.
These communities-
- Conducts some Meetups, Workshops, Conferences monthly which you can attend and meet new people.
- Usually, have a group on telegram/WhatsApp which you can join.
Meetups
Go to meetups.
You can get to know about meetups from meetup.com.
You can also be a speaker at meetups. Try speaking at meetups and someday you will be speaking in huge conferences also, with thousands of visitors.
Open Source Contributions
This the most beautiful part of the whole developer community. Open source is the fuel that runs our world. Start contributing to open source. Ways you can contribute to an opensource project -
- Report a bug to the project’s issue tracker
- Submit suggestions for features
- Answer a question publicly as help to new people
- Blog and tweet about it
- Attend or volunteer its meetup
- Verify and document bugs
- Write an example for the documentation
- Contribute through Code
Read this is a blog by Andy Lester for more on getting started to opensource.
Internships
Please do not waste your vacations. Apply for internships of your interest when their applications open. Check this awesome list of internships by Tapasweni Pathak.
Bug Bounty Programs
In bug bounty programs you have to find bugs and you get paid for reporting bugs, especially those pertaining to exploits and vulnerabilities.
Thank you !!
I thank you for reading this long :)
You can give your feedback by commenting on the feedback issue. Also, suggestions for improving this doc are open. Share this with your 1st-year juniors to help them out in building their future path.
Contributors Parth Yadav, Adarsh Yadav and Pavan Gandhi
Star the repo if you like :)