Hey students, yes I mentioned it because this article’s target users are the students of college that to of computer science.
Here I will divide what students wanna become after their Graduation. So the Classification is as follows
-
Developer
- Front end Developer
- Backend Developer
- Full Stack Developer
- Game Developer
- Android Developer
- IOS Developer
- Graphics Designer
- Data Analyst
- Artificial Intelligence Engineer
So these are the Categories that I am going to talk about in this article. First of all I will talk about few concepts that are common to all of these and should be learned.
Common topics
-
Object Oriented Programming
- This is something which is really useful everywhere. The main philosophy behind this according to me is why do rework if you can reuse the smaller components to make the bigger piece.You must know about this because you will work with reusable components in all of the listed categories.
-
Data Structures
- If we exclude graphics designing all of the above requires very good knowledge of Data Structures. Now you must be wondering what all should know about data structures. You can find it anywhere on codechef etc.
-
Design and Analysis of Algorithms
- Yes you have to learn this for all of above. This is something I consider as the must for every person. It increases your ability to think and work in different situations. You can apply algorithms every where and every point of time so learning them is not gonna cost you anything.
-
Operating Systems
- Again if you leave Graphics Designing Operating system is important for all of the others. It is because everything you will work will be running on one or the other operating system. So it is always advisable to learn the behavior of Operating systems so that you can easily modify your projects to perform good.
-
Computer Networks
- Same case you need to learn computer networks as all of the above make use of the networks by one or the other ways. So if you know about network latency, packets, protocols like SSL, HTTPS, SSH. They will be great help to you if understanding the working of servers.
We have talked about the common things now lets proceed with what specifics you must know if you want to opt for one of the above.
Front End Developer
Computer languages you must know :
- Javascript
- HTML
- SAAS or CSS
- Actionscript [Optional if you want to develop flash applications.]
Frameworks you must know :
You must have knowledge of
- Responsive Design
- Icons and Glyphicons
- Little CSS tricks that may cause you many hours.
- Meta tags for SEO.
- API calls
- JSON and XML
- Node and NPM, because now a days node is used to setup projects.
- Grunt or Gulp knowledge will be extra plus.
This is pretty much you should know about front end at the end of college. You must keep in mind that you will get more and more front end tricks with your experience.
Back End Developer
Languages you must know
- Php or Python or Java or Ruby, I will say learn php and then python.
- You can also Learn node for backend.
Frameworks you must know
- For php
- Laravel or Symphony or CodeIgnitor.
- For python
- Django or Flask.
- For Java
- Strut or Spring or GWT
- For Ruby
- Rails or Sinatra
- For Node
- Mean
Database you must know
- MySQL or DB2 or Oracle
- MongoDB or dynamoDB
In-Memory databases you must know
In-Memory Search frameworks
- Elastic Search or Solr .
You must also have knowledge of
- API’s
- Authentications and authorization
- AWS Servers
- SSH
- Http and Https
- Nginx or Apache
- JWT tokens
Full Stack Developer
So you come to the bigger part. As I told you about small reusable components, merge the above mentioned small components and you will get what you must know to become the full stack developer.
Game developer
I don’t have much knowledge on how to do game development but i am sharing few tools that you can can learn and strive towards game development.
Generally what happens in game development is there are many game engines present people use those engine and modify them to make their own games.
Android Developer
Languages
- Java or Python
Tools you must know
- Android Studio
Knowledge you must have
- Debugging android apps.
- Knowledge of XML
- API’s
- Basic concepts of android
You can also use HTML CSS and Javascript to make android apps but those app will not meet all the requirements that a native app can do. For making apps in javascript you can use tools like phonegap.
IOS Developer
Again I don’t have much knowledge but I know that learning IOS development is pretty costly. First you must have a Mac OS then only you can start learning about IOS development.
Languages
- Swift or C#
Tools
- Xcode
You must have good knowledge of
- Debugging IOS apps.
- Knowledge of XML
- API’s
- Basic concepts of IOS apps.
Phonegap can also be used in developing IOS apps thus making it really awesome as you can get both apps in one code. Awesome no?
Graphic Designers.
For becoming a graphic designer you must have a good grasp of what is good design, how to make good design, user experince and all
Tools
- Photoshop or Sketch or Gimp
- Adobe Illustrator
- Adobe Aftereffects for videos.
This is one of the toughest cause it requires a good grasp of others thinking.
Data Analyst
For being a Data Analyst you must be well aware of the basic concepts of maths and statistics and prediction models.
Languages
- Python
- R
- Java
- Matlab.
Tools
- Hadoop
- Excel
Python Libraries
- Panda
- Scikit
Other knowledges:
- Manipuation of data from one format to another
- Excel is very powerful and knowledge of VBA will be helfull
Artificial Intelligence Engineer
You must have good grasp of probability and prediction models and statistics. Machine learning and its different models.
Languages
- Python
- Matlab
- R
- Java
Libraries for python
- Scikit
- Panda
Knowledge to have
- Good grasp of Algorithms and operating systems as handling huge data will cause problems.
- Data format manipulations
- Patience at it may take good amount of time for your model to learn and act according to you.
So this is all about the different options for you in Computer Engineering . Please note that I am not an expert and this is all my views that you may use. All this knowledge is the perception of my surrounding.
Also one thing that lot of students miss now a days is RANDOMNESS. According to me it is one of the best things to have, as you will come up with solutions that none of other may have think.