Becoming A Computer Scientist
Starting college as freshmen in September and chose to major In C.S
What would be the best way to start my journey. I have no prior knowledge with coding or anything C.S related but very interested in learning, so many different things to learn I’m not sure where to start,
I want to learn the fundamentals of computer science, and what steps I should take to get to my goal on becoming a computer scientist.
Any help is appreciated.
If you wish to learn the fundamentals of computer science try some of the beginner-level courses on EdX.org and Coursera.org. There are renowned universities that deliver those courses and trust me, it will be an enriching experience.
Then once you join college, learn the subjects well. Know your stuff. A key differentiator would be the ability to apply your learning.
Computer science courses will teach you how to apply logic, how to make sense of the data structures and algorithms etc. Treat them like the tools that a mechanic has, nothing more than that. But what you do with those tools, is what will matter. That is what the industry seeks.
The expectation being you will build working programs, applications, databases, etc, and then again, you will get an opportunity to specialize down the line.
Chiranjib recommends the following next steps:
1) Core Tech knowledge - both tacit, application and specialized.
2) Network & Connections - to learn, explore ( options of subjects, stream of technology that interest you), choose ( a professional workstream you like) and then ultimately find your first job.
3) A journal or profile of activities ( almost akin to saying start building a professional profile / resume), rich and diverse
Now you may ask how do I do this - seems daunting.
Well, the first one is really obvious - study hard , do assignments and the usual college academic stuff. Be focused on the application and outcomes.
However, as you start your journey to become a CS professional to enter workforce, take advantage of some less obvious opportunities eg.
- on campus opportunities through campus committees,
- attend industry engagement opportunities and guest lectures on both course related topics but also diverse/broad business & world impacting topics
- join career / industry engagement associations that allow you to see life outside college,
- projects/internships to learn on the job - more the merrier,
- try and visit company job fairs, industry / company open days,
- build a strong "professional profile on LinkedIn and keep it updated. Use it to follow and seek out industry specialists in your discipline and areas of interests. In addition build out your insights database by commenting/posting on topics of interests...
- follow industry VCs, crowdsourcing companies to see where tech is going, what they are investing in - essentially to understand market trends...
All of the above can be summarized in one two words - Be CURIOUS!
Best luck and have a great time at college!
Myself, I like CS, but I enjoy CE more (I like building things and seeing them work). The CS people are more like scientists trying different theories and ways to allow engineers to write the code/systems that actually do the work.
(If you compare it to something like rocket ships (or StarTrek), the scientists design the rocket ship, but the engineer has to build & operate it when they go on missions :)
If we take a step back for a second from the theoretical part of computer science, one of the best pieces of advice I can give you is to attempt practical coding projects. A quick internet search of "beginner coding projects" will show you plenty of options of simple projects that will allow you to not just the fundamentals, but even the boilerplate that goes into writing simple programs.
Something as simple as writing the words "Hello World!" to the computer screen in C/C++ requires writing boilerplate text that is specific to those languages, and its purpose may not be intuitively obvious. However, being comfortable with knowing such idiosyncrasies exist can give you a leg up in your intro courses. It will have you familiar with terms like "standard input/output", "compiling", and the like, that are important to the actual process of writing a program, but are not necessarily important to the underlying mathematics behind computer science that you will be taught in school.
You need to worry about whether you have any prior coding experience or not or if you do not know anything about computer science. Start your journey in your college and start learning what is being taught.
Coding is one part of a Computer Scientist / Computer Engineer, but major parts are the subjects you study and practice during your Under Grad. program. There are lot many subjects in Computer Science those are need to be learnt and practiced.
You can continue coding along with your courses and also pick up a language you would like to mast.
Hope this helps, wish you all the best.
Upanshu recommends the following next steps:
Understanding yourself will help you on your journey. It has been a great career for almost anyone who has entered it.
Check out some online courses - YouTube/PluralSight/... Take some aptitude tests. Maybe try a small project.
"What would be the best way to start my journey, I have no prior knowledge with coding but I know that’s a key skill, but there’s so many different things to learn I’m not sure where to start,"
Coding is a sum of multiple skills.
Computer science needs:
- logic (boolean arithmetic).
- algorithm: this is logic applied to conditions/loop/statements to create automation.
- data structures: this is how to store your data within your program.
- programming language: the language in which you express the algorithm (syntax) and data structure. There are tons of languages, all with pros and cons.
As an extension, you will also need computer architecture to understand how your code is executed on the machine but not at the beginning of your journey.
If you want to start your journey in coding, you need to start with a small project and a coding language. There are multiple languages out there. I would recommend Python to start with because you simply need to download and install an python interpreter to be able to start your simple programs. There are even online Python interpreters.
Then learn the basic try simple programs, tutorial and the like: this website is quite nice for this https://www.tutorialspoint.com/python/index.htm
Then, once you get familiar with the basics, go and try small project. Do not try fancy syntax but just syntax that works for small problems:
- invert a string like from Hello -> olleH
- sort numbers ...
You can search online for exercises as well and if you have questions. School will then give you projects and more specialized class based on what you want to specialize yourself in computer science.
There are also compiled languages like C++. They are not harder than python in syntax but they require an additional step to translate your syntax into machine comprehensive binary that could be annoying to learn if you are not familiar with.
My advise would be to talk to the curriculum counselor at your university to best understand the combination of courses you need to take. Fundamentals of computer science, algorithms, and programming in languages like C, C++ would be the way to go. You will also need to take quite a bit of mathematics classes.
One key advise is to look for internships after your second year. Partner with the career center and see if you can work in a tech. company locally and get real world experience and make connections with professionals.
best of luck!
Chiranjib Mazumdar already mentioned resources like EdX and Coursera.
I would add another one – udemy.com.
Also, I would recommend to set some intermediate goals, like getting certifications from different vendors, like Microsoft, AWS, etc.
It is a good measure of your achievements and evaluation of your level of knowledge.
Also, it helps to keep you motivated and stay on track.
Usually, each certification has its own learning path, it is already structured. You can plan your learning path for let’s say 3 months and then schedule certification exam (which is usually online).
Once you earn your certificate, you will be able to post it in LinkedIn. It will make you visible and more valuable for potential employers
It is very important to start building your profile in LinkedIn. Once you add your areas of interest, will start adding your achievements there, you will start receiving relevant content It will help you to catch some interesting ideas.
Good luck to you in this interesting journey!