This document provides advice and resources for learning computer science and programming. It begins by debunking common myths about the field. It then provides recommendations for hardware, programming languages to learn, and online courses and books for languages like Python, Java, C/C++, and web development. It emphasizes the importance of practical projects, collaboration, and learning multiple languages. Other advice includes developing good habits, data structures, software engineering principles, networking, and learning from failures. The overall message is that computer science requires passion and lifelong learning.
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Advice for Computer Science freshers!
1. How to be a Hacker
101!
by Karan Pratap Singh
Geek, hacker, open source, linux and android
enthusiast, gamer, trying to be an entrepreneur
2. Some Common Myths:
1) Computer Science is easy.
2) You don’t really need to study in college.
3) You need to study from IIT to get a very good
job in Computer Science.
4) On campus placements are the best!
5) .NET/C# is an awesome thing to learn and
Java is dead :P
6) iOS is better than Android.
3. Some Common Myths:
7) Overnight successes(Angry Birds(52nd),
Twitter(5))
8) Computer Science is just programming,
programming and programming!
9) Books are for losers!
10) Any other myths you have heard?
4. What hardware should I use?
1. Get a keyboard, typing on the laptop’s
keyboard will make you sore!
2. Using an external 22inch monitor is a great
idea! Larger screen space means more
productivity!
3. Use an efficient mouse with adjustable dpi!
Touchpads slow you down!
5. What hardware should I use?
4. Get a decent pair of headphones, as
sometimes you need music to focus!
5. Having fast broadband internet access is a
MUST! Without internet you have lost half of
your productivity!
6. Check out what professionals prefer to use
on usesthis.com
6. What hardware should I use?
7. Get a tablet or ebook reader, as it will help
you a LOT!
8. An Android mobile is the best smartphone
you can have, but go for a decent one(15k +)
9. Try to get a laptop with an Anti-Glare(or
matte finish) screen and as high ppi as
possible!
7. What programming Languages should I
learn?
Follow this order for best results:
1) Python(Why high level languages matter?
Because of top-down programming approach!
Okay….wait a minute, what are high level
languages?)
2) Java
3) C/C++
4) Web languages like HTML, CSS and
JavaScript!
8. Totally new to computers?
1. The CS 101 primer by one of Stanford’s best
teachers! Nick Parlante,
https://www.coursera.org/course/cs101
2. Another CS 101 Introduction course to do
After you know Python basics,
https://www.udacity.com/course/cs101
9. Python Resources
1. Google Python Class,
https://developers.google.com/edu/python/
Contains Video Lectures and assignments as
well as written notes on the topics covered in
the lectures!
2. How to think like a Computer Scientist!
http://www.greenteapress.com/thinkpython/
10. Python Resources
3. Python class on Coursera,
https://www.coursera.org/course/interactivepyth
on
4. How to think like a Computer Scientist!(Free
Ebook!)
http://www.greenteapress.com/thinkpython/
Beginner friendly! :)
11. Python Resources
5. A slightly more advanced Python book,
Learning Python http://goo.gl/S9nD8i
6. Once you are pretty familiar with python and
basic programming, this intermediate course by
Peter Norvig is awesome,
https://www.udacity.com/course/cs212
12. Java Resources
1. Stanford Java Class by Mehran Sahami,
http://goo.gl/lFIzB
Excellent funny teacher, really nice introduction
to programming and top down design and really
cool assignments! :)
The libraries used in this course can be found
at http://www-cs-
faculty.stanford.edu/~eroberts/jtf/
13. Java Resources
2. Head First Java, great book!
http://goo.gl/03Gys9
3. Another nice online course,
https://www.udacity.com/course/cs046
14. C Resources
1.The one and only, The C Programming
Language by Dennis Ritchie!(Not beginner
friendly but totally worth your time!)
http://goo.gl/Wf8jUC
15. C++ Resources
1. Programming Abstractions course by
Stanford, teaches C++ as well as Data
Structures and Algorithms,
http://see.stanford.edu/see/lecturelist.aspx?coll
=11f4f422-5670-4b4c-889c-008262e09e4e
2. And an awesome book C++ Primer Plus,
http://goo.gl/MSt8NX
16. Web Development Resources
1. For HTML 5, this book is a pure Gem,
http://diveintohtml5.info/
2. Learn web development, by the founder of
Reddit, https://www.udacity.com/course/cs253
3. Want a more HTML 5 focussed course? You
got it, taught by Google Engineers,
https://www.udacity.com/course/cs255
17. Web Development Resources
4. For Javascript, JavaScript: The Good Parts
by Douglas Crockford(works at Yahoo, expert
at Javascript). http://goo.gl/IN5jZd
5. CSS, many web tutorials online and CSS:
The Missing Manual by David Sawyer
McFarland. http://goo.gl/5pgpml
18. Which IDE should I use?
1. It depends a lot on your personal preference.
2. Java → Eclipse
C/C++ → Codeblocks
Python → IDLE, IPython
Web → Bugzilla, Chrome Developer
Console?
3. Vim, Emacs, or Notepad++?
19. Which OS should I use?
1. Linux is your best friend! It makes you a
more intelligent computer user!(I recommend
Ubuntu or Linux Mint 15)
2. Mac OS is also good, but has some slight
quirks.(Getting traditional GNU software is an
issue.)
3. Learning how to use the terminal effectively
is very helpful! :)
22. Important online resources?
10. IRC channels and mailing lists!
11. Staford E-Corner! and TED Talks!
12. Paul Graham’s Blog!(and other awesome
people write blogs too :P )
13. xkcd, The Oatmeal!
23. Video Time!
We are 50% done :)
Let’s all wake up by watching some
awesome videos!
24. The best way to learn coding?
1. MUST READ, Teach yourself coding in 10
years by Peter Norvig, http://norvig.com/21-
days.html
2. Learn by doing! Why coding projects are
critical!(e.x. backrub, Pulse, Apple, hotmail!)
3. Collaborate with other coders who are more
experienced than you. GSoC, Open Source :P
25. Why learn more than 1 language?
Because in real life, most complex programs
are polyglots!
Python and C/C++ go great together!
MySql is combined with many langauges to
allow database handling!
26. Examples of real life polyglots
Android: The Android operating system
consists of 12 million lines of code including 3
million lines of XML, 2.8 million lines of C, 2.1
million lines of Java, and 1.75 million lines of
C++.
LibreOffice: LibreOffice use C, C++ and Java.
27. HOW to study for college exams?
For sessionals: You just need to study 2 to 3
days before the sessionals
For Finals: 1 week before the finals begin is
more than enough.
Provided you were attentive in the class :P
Good Percentage/Grade: 75% and above is
more than sufficient
29. Other Skills
1. Learn to Touch Type, use a typing tutor
software!
2. Learn to network! It will take you far in life :P
3. Learn to follow a schedule! The secret recipe
of most successful people.
30. Other Important stuff
1) How to design your programs? Top Down
Thinking?
2) Data Structures and Algorithms?
https://www.coursera.org/course/algo and
https://www.coursera.org/course/algo2
3) Design Patterns? Head first design patterns,
http://goo.gl/1X2WMW
31. Other Important stuff
4) Software Engineering? what the hell is that?
Code Complete 2 is a MUST READ for
beginners and experts alike,
http://goo.gl/TC0Nf6
Head First Software Development is a nice
primer on software engineering,
http://goo.gl/dJVNmV
32. Other Important stuff
5) Why it is important to have good English
skills?
6) Why you should be paying attention always!
7) Are some people more lucky than others?
How to make yourself more lucky? Ex. find the
number of images in the newspaper!
33. Other Important stuff
7) Importance of networking with Seniors! and
other knowledgeable persons you meet.
8) Why it is important to read about failures too!
“Wise men learn by other men's mistakes, fools
by their own.”
--H. G. Bohn
34. Other Important stuff
9) Use college to accelerate yourself in the
future! Because when you are in the future, you
see limitless possibilities!
35. Time for some ZEN!
To follow the path,
look to the master,
follow the master,
walk with the master,
see through the master,
become the master.
36. Thank You ;)
You can reach me via
pulug@googlegroups.com
Follow me on twitter: @kps_foo