The 9 Best Programming Books to Read Right Now if You Want to Distinguish Yourself

If you read just one of these best programming books this year you’ll be a step ahead of nearly everyone around you. That’s because, according to Steve McConnell, the author of Code Compete, one book is more than most programmers read each year.

Back in 2008 author, blogger, software engineer and creator of Trello made this bold statement:

Programmers seem to have stopped reading books. The market for books on programming topics is minuscule compared to the number of working programmers. Instead, they happily program away, using trial-and-error. When they can’t figure something out, they type a question into Google.


Does this sound like you?

While search engines and community forums like Stack Overflow are indispensable, there’s no way you can obtain the same depth of knowledge and perspective as you get from reading books.

The best types of programming books are ones that don’t just tell you how, but explain the why behind it. They don’t just teach you about specific languages or how to code, but how to think. They stand the test of time and will help you become a better programmer, whether you are just starting out or have been in the industry for 30 years.

Without further ado, here is the list of the top 8 best programming books to read if you want to set yourself apart and become a coding powerhouse.


1. Coders at Work: Reflections on the Craft of Programming


If you’re curious about life as a programmer than Coders at Work is the book for you. It’s packed with interesting interviews from 15 accomplished programmers and computer scientists including Joshua Bloch, Peter Norvig, Donald Knuth, Ken Thomson, and Jamie Zawinski. The author, Peter Seibel (a programmer turned writer), got interviewees to open up about the famous projects that they worked on and the inspiring stories behind them. Coders at Work gives a peek into what makes some of the greatest programmers tick and how they think. Definitely a must read!


2. Code Complete: A Practical Handbook of Software Construction


Steve McConnell’s Code Complete is considered to be the encyclopedia of practical coding and a must-read for any professional programmer. And, it’s easy to understand why – it’s a massive piece of literature at 900-pages, but each chapter is packed with suggestions and techniques to improve everyday programming and construct code that is readable and easier to manage. McConnell has a knack for presenting his material in a story format that makes the book easy to read and even entertaining. No matter what level you’re at, Code Compete will undoubtedly change the way you think about and write code.

TIP: If you don’t have time to read the book in its entirety, flip to the last three chapters since it serves as a resource guide. From there, you can read through whichever chapters you want information on. Skip the Kindle edition and opt for the print copy since chapters are easier to reference.


3. The Mythical Man Month


The premise of this book is built on the fact that computers change, but people don’t. The Mythical Man Month is a programming classic that discusses the human elements of software engineering. Even though the book was written 30 years ago (first published in 1975) it’s stood the test of time. Why? Because building things, including software, has been as much about people as much as hit has been about materials or technology. If you’re aspiring to become a project manager, this book will help you understand things that can go wrong in software development and will give you practical advice or working with, organizing and managing teams.


4. Don’t Make Me Think, Revisited: A Common Sense Approach to Web Usability


If you’re going to read a book on usability make it this one! Don’t Make Me Think is a great resource for any web developer who want to create websites, mobile sites or mobile apps that are much easier to use. The book is loaded with helpful information that’s presented in a clear and concise way that could be understood by both technical and non-technical audiences alike.


5. The Pragmatic Programmer: From Journeyman to Master


Another oldie, but goody, that continues to stand the test of time. The Pragmatic Programmer is a collection of lessons and recommendations for software developers. The book contains a set of numbered tips, about 70 of them, which are collected on a single tear-out card situated in the back of the book. The tips alone might seem obvious, but they contain some surprising dimensions that will help strengthen your programming career and hone your craft! 


6. Clean Code: A Handbook of Agile Software Craftsmanship


Poorly written code can bring a project to its knees, which is why developing great code is so important! In Clean Code, “Uncle Bob” Martin shares tips and examples on how to create better code. The book dives into the principles and best practices of writing clean code, and also presents increasingly challenging case studies presented that challenges readers to think about what’s right with the code, and what’s wrong with it. While examples in Clean Code are given in Java, but is applicable to nearly all programming languages.

TIP: Read Clean Code after getting through Code Complete since it deals with some of the same topics but at a higher level.


7. Programming Pearls


This is a classic book for newbies that teaches the basics of solving problems. If you work through the problems on your own (without looking ahead) you’ll learn a lot and be a much stronger programmer with a deeper understanding of algorithms and algorithm design.


8. Cracking the Coding Interview: 150 Programming Questions and Solutions


This is one of the go-to books for programming interviews if you’re looking to land a gig at a top company such as Amazon, Apple, Facebook, Google or Microsoft. As the title suggests, the book contains 150 programming questions that you might encounter at interviews, and then breaks down how to solve them. The remainder of the book focuses on non-coding aspects of the interview process such as interview prep, resume prep, behavioral prep, etc. Definitely one of the best programming interview books out there. Another good prep book is Introduction to Algorithms , which is considered to be the “bible of algorithms.”  


9. Soft Skills: The Software Developer’s Life Manual


For most software developers, coding is the fun part. The hard parts involve dealing with clients, peers, and managers, staying productive, achieving financial security and so on. This book covers everything-else-apart-from-coding ranging from career, to personal branding, blogging, learning, teaching, finances, and even fitness and relationships.


Bonus Book: Zero Bugs and Program Faster


The author of Zero Bugs spent two years researching every bug avoidance technique she could find. This book contains the best of them! It includes useful tips and techniques, and presents information in an easy-to-digest way and brought to life with stories and metaphors that make it a really enjoyable (and memorable) read.


Have any other “must read” books that you would add to the list? Share!

7 Motivational Graduation Speeches That Will Inspire and Transform You

Feeling down? Confused? Not sure what to do with your life? These commencement speeches may have the answers you’re looking for.

If not that, at least it will inspire and motivate you to bounce back in life.

Here are 7 motivational speeches to inspire you and change your life:

1. David Foster Wallace, 2005 Kenyon Graduation Speech23

“There are these two young fish swimming along and they happen to meet an older fish swimming the other way, who nods at them and says “Morning, boys. How’s the water?” And the two young fish swim on for a bit, and then eventually one of them looks over at the other and goes “What the hell is water?”

In this commencement address, Wallace reminds us that we often forget, or take for granted, the most obvious things around us. He acknowledges it’s difficult to stay aware of what’s happening in the world, especially when you’re too busy dealing with the monologue inside your head.

That’s what a college education is about, according to him. It’s learning how to think, exercising some degree of control over your thoughts so you can choose what to pay attention to.

Our thoughts affect our realities, and the ability to choose how you “construct meaning from experience” will determine the lenses from which you see the world and how you react in return.

2. Ellen DeGeneres, 2009 Tulane University

“Never follow anyone else’s path, unless you’re in the woods and you’re lost and you see a path and by all means you should follow that. Don’t give advice, it will come back and bite you in the ass. Don’t take anyone’s advice. So my advice to you is to be true to yourself and everything will be fine.”

This is one of the funniest graduation speeches ever! All humor aside, this speech shows why it’s better to be true to yourself, instead of trying desperately to be a second-rate version of someone else.

For years, Ellen thought being bisexual might prevent her from being a successful stand-up comedian but it’s just not the case. Ellen proved that you can be successful, whoever you are, if you worked hard and learn from your past experiences— even one as sad as the death of a loved one.

3. Charlie Munger, 2007 University of California Law School

*Skip to 4:08 for the actual speech

“You’re not going to get very far in life based on what you already know. You’re going to advance in life by what you’re going to learn after you leave here.”

Education doesn’t stop after you graduate from college. It doesn’t stop after you finish your MBA or PhD either. Munger says, “Wisdom acquisition is a moral duty. It’s not just something you do to advance in life.”

It’s a moral duty because it’s only through continuous learning that we can add to the vast knowledge of man kind. If we stopped learning, progress in all industries—computers, finance, engineering, biology, stops as well.


4. Michelle Obama, 2013 Eastern Kentucky University

“If you’re a Democrat, spend some time talking to a Republican. And if you’re a Republican, have a chat with a Democrat. Maybe you’ll find some common ground, maybe you won’t. But if you honestly engage with an open mind and an open heart, I guarantee you’ll learn something. And goodness knows we need more of that, because we know what happens when we only talk to people who think like we do — we just get more stuck in our ways, more divided, and it gets harder to come together for a common purpose. ”

As far as inspirational speeches go, Michelle Obama’s speech is very actionable. Her advice is simple (not easy), talk to each other with an open mind.

Different religion, race, political stand, it doesn’t matter. We can all learn from one another.

5. Jim Carrey, 2014 Maharashi University of Management

This is one of my favorite motivational speeches because Jim Carrey is such a good example of his message.

“So many of us choose our path out of fear disguised as practicality. My father could have been a great comedian, but he didn’t believe that that was possible for him, and so he made a conservative choice. Instead, he got a safe job as an account.”
Carrey’s father lost his accounting job when he was 12, and it was then he realized that failure is inevitable, whether you’re doing what you want or not. If that’s the case, you might as well take a stab at doing something you love.

6. J.K Rowling, 2008 Harvard Commencement Address

“I was set free, because my greatest fear had been realized, and I was still alive, and I still had a daughter whom I adored, and I had an old typewriter and a big idea.”

For writers and creatives everywhere, this is probably one of the most inspirational videos there is.

Rowling was suffering from depression when he wrote the Harry Potter books. But through grit and patience with herself, she was able to complete the first Harry Potter Manuscript and in doing so escape the clutches of depression.

Thanks to her, the world has Harry Potter.

7.Bono, 2004 University of Pennsylvania

In case you don’t know him, Bono is the lead singer of the famous band U2.

Of course, being the rock star that he is, he leads his speech by saying, “My name is Bono, and I am a rock star”

Being a rock star, I thought Bono would talk about the perils of fame, the road to stardom or something to that effect. But instead, he talked about big ideas and changing the world.

In his speech, he urges graduates to carefully consider their big idea. “What are you willing to spend your moral capital, your intellectual capital, your cash, (and) your sweat equity in pursuing outside of the walls of the University of Pennsylvania? The world is more malleable than you think and it’s waiting for you to hammer it into shape,” he said.


“There were people who went to sleep last night, poor and rich and white and black, but they will never wake again. And those dead folks would give anything at all for just five minutes of this weather or ten minutes of plowing. So you watch yourself about complaining. What you’re supposed to do when you don’t like a thing is change it. If you can’t change it, change the way you think about it.”
― Maya Angelou



Ted Talks for when you want to laugh and think

Playlist (8 talks): Talks for when you want to laugh and think

These hilarious talks won’t just make you laugh out loud — they’ll make you think twice.

  • Did you know that you’re 30 times more likely to laugh if you’re with somebody else than if you’re alone? Cognitive neuroscientist Sophie Scott shares this and other surprising facts about laughter in this fast-paced, action-packed and, yes, hilarious dash through the science of cracking up.

  • You have no idea where camels really come from

     Latif Nasser

    Camels are so well adapted to the desert that it’s hard to imagine them living anywhere else. But what if we have them pegged all wrong? What if those big humps, feet and eyes were evolved for a different climate and a different time? In this talk, join Radiolab’s Latif Nasser as he tells the surprising story of how a very tiny, very strange fossil upended the way he sees camels, and the world. This talk comes from the PBS special “TED Talks: Science & Wonder.”

  • My road trip through the whitest towns in America

    Rich Benjamin

    As America becomes more and more multicultural, Rich Benjamin noticed a phenomenon: Some communities were actually getting less diverse. So he got out a map, found the whitest towns in the USA — and moved in. In this funny, honest, human talk, he shares what he learned as a black man in Whitopia.

  • One woman, five characters, and a sex lesson from the future

     In this performance, Sarah Jones brings you to the front row of a classroom in the future, as a teacher plugs in different personas from the year 2016 to show their varied perspectives on sex work. As she changes props, Jones embodies an elderly homemaker, a “sex work studies” major, an escort, a nun-turned-prostitute and a guy at a strip club for his bachelor party. It’s an intriguing look at a taboo topic, that flips cultural norms around sex inside out.

  • Why city flags may be the worst-designed thing you’ve never noticed

    Roman Mars

    Roman Mars is obsessed with flags — and after you watch this talk, you might be, too. These ubiquitous symbols of civic pride are often designed, well, pretty terribly. But they don’t have to be. In this surprising and hilarious talk about vexillology — the study of flags — Mars reveals the five basic principles of flag design and shows why he believes they can be applied to just about anything.

  • Why I keep speaking up, even when people mock my accent

    Safwat Saleem

    Artist Safwat Saleem grew up with a stutter — but as an independent animator, he decided to do his own voiceovers to give life to his characters. When YouTube commenters started mocking his Pakistani accent, it crushed him, and his voice began to leave his work. Hear how this TED Fellow reclaimed his voice and confidence in this charming, thoughtful talk.

  • Math is forever

    Eduardo Sáenz de Cabezón

    With humor and charm, mathematician Eduardo Sáenz de Cabezón answers a question that’s wracked the brains of bored students the world over: What is math for? He shows the beauty of math as the backbone of science — and shows that theorems, not diamonds, are forever. In Spanish, with English subtitles.

  • A science award that makes you laugh, then think

    Marc Abrahams

    As founder of the Ig Nobel awards, Marc Abrahams explores the world’s most improbable research. In this thought-provoking (and occasionally side-splitting) talk, he tells stories of truly weird science — and makes the case that silliness is critical to boosting public interest in science.

🎓 Path to a free self-taught education in Computer Science!



The OSSU curriculum is a complete education in computer science using online materials. It’s not merely for career training or professional development. It’s for those who want a proper, well-rounded grounding in concepts fundamental to all computing disciplines, and for those who have the discipline, will, and (most importantly!) good habits to obtain this education largely on their own, but with support from a worldwide community of fellow learners.

It is designed according to the degree requirements of undergraduate computer science majors, minus general education (non-CS) requirements, as it is assumed most of the people following this curriculum are already educated outside the field of CS. The courses themselves are among the very best in the world, often coming from Harvard, Princeton, MIT, etc., but specifically chosen to meet the following criteria.

Courses must:

  • Be open for enrollment
  • Run regularly (ideally in self-paced format, otherwise running at least once a month or so)
  • Fulfill the academic requirements of OSSU
  • Fit neatly into the progression of the curriculum with respect to topics and difficulty level
  • Be of generally high quality in teaching materials and pedagogical principles

When no course meets the above criteria, the coursework is supplemented with a book. When there are courses or books that don’t fit into the curriculum but are otherwise of high quality, they belong in extras/courses or extras/readings.

Organization. The curriculum is designed as follows:

  • Intro CS: for students to try out CS and see if it’s right for them
  • Core CS: corresponds roughly to the first three years of a computer science curriculum, taking classes that all majors would be required to take
  • Advanced CS: corresponds roughly to the final year of a computer science curriculum, taking electives according to the student’s interests
  • Final Project: a project for students to validate, consolidate, and display their knowledge, to be evaluated by their peers worldwide
  • Pro CS: graduate-level specializations students can elect to take after completing the above curriculum if they want to maximize their chances of getting a good job

Duration. It is possible to finish Core CS within about 2 years if you plan carefully and devote roughly 18-22 hours/week to your studies. Courses in Core CS should be taken linearly if possible, but since a perfectly linear progression is rarely possible, each class’s prerequisites is specified so that you can design a logical but non-linear progression based on the class schedules and your own life plans.

Cost. All or nearly all course material prior to Pro CS is available for free, however some courses may charge money for assignments/tests/projects to be graded. Note that Coursera offers financial aid. Decide how much or how little to spend based on your own time and budget; just remember that you can’t purchase success!

Content policy. If you plan on showing off some of your coursework publicly, you must share only files that you are allowed to. Do NOT disrespect the code of conduct that you signed in the beginning of each course!

How to contribute. Please see CONTRIBUTING.

Getting help. Please check our Frequently Asked Questions, and if you cannot find the answer, file an issue or talk to our friendly community!


Curriculum version8.0.0 (see CHANGELOG)


  • Core CS assumes the student has already taken high school math and physics, including algebra, geometry, and pre-calculus. Some high school graduates will have already taken AP Calculus, but this is usually only about 3/4 of a college calculus class, so the calculus courses in the curriculum are still recommended.
  • Advanced CS assumes the student has already taken the entirety of Core CS and is knowledgeable enough now to decide which electives to take.
  • Note that Advanced systems assumes the student has taken a basic physics course (e.g. AP Physics in high school).

Introduction to Computer Science

These courses will introduce you to the world of computer science. Both are required, but feel free to skip straight to the second course when CS50 (the first course) moves away from C. (Why?)

Topics coveredimperative programming procedural programming C manual memory management basic data structures and algorithms Python SQL basic HTML, CSS, JavaScript and more

Courses Duration Effort Prerequisites
Introduction to Computer Science – CS50 (alt) 12 weeks 10-20 hours/week none
Introduction to Computer Science and Programming using Python 9 weeks 15 hours/week high school algebra

Core CS

All coursework under Core CS is required, unless otherwise indicated.

Core programming

Topics coveredfunctional programming design for testing program requirements common design patterns unit testing object-oriented design Java static typing dynamic typing ML-family languages (via Standard ML) Lisp-family languages (via Racket) Ruby and more

Courses Duration Effort Prerequisites
How to Code – Simple Data 7 weeks 8-10 hours/week none
How to Code – Complex Data 6 weeks 8-10 hours/week How to Code: Simple Data
Software Construction – Data Abstraction 6 weeks 8-10 hours/week How to Code – Complex Data
Software Construction – Object-Oriented Design 6 weeks 8-10 hours/week Software Construction – Data Abstraction
Programming Languages, Part A 4 weeks 8-16 hours/week recommended: Java, C
Programming Languages, Part B 3 weeks 8-16 hours/week Programming Languages, Part A
Programming Languages, Part C 3 weeks 8-16 hours/week Programming Languages, Part B


Core math

Topics coveredlinear transformations matrices vectors mathematical proofs number theory differential calculusintegral calculus sequences and series discrete mathematics basic statistics O-notation graph theory vector calculus discrete probability and more

Courses Duration Effort Prerequisites
Essence of Linear Algebra pre-calculus
Linear Algebra – Foundations to Frontiers (alt) 15 weeks 8 hours/week Essence of Linear Algebra
Calculus One1 (alt) 16 weeks 8-10 hours/week pre-calculus
Calculus Two: Sequences and Series 7 weeks 9-10 hours/week Calculus One
Mathematics for Computer Science 13 weeks 5 hours/week single variable calculus (Calculus Two)

1 Note: When you are enrolled, please see this list of errors and these recommendations for how to progress through the course.

Core systems

Topics coveredboolean algebra gate logic memory machine language computer architecture assembly machine language virtual machines high-level languages compilers operating systems network protocols and more

Courses Duration Effort Prerequisites
Build a Modern Computer from First Principles: From Nand to Tetris (alt) 6 weeks 7-13 hours/week none
Build a Modern Computer from First Principles: Nand to Tetris Part II 6 weeks 12-18 hours/week From Nand to Tetris Part I
Introduction to Computer Networking 8 weeks 4–12 hours/week algebra, probability, basic CS – Hack the Kernel 15 weeks 6 hours/week algorithms


Core theory

Topics covereddivide and conquer sorting and searching randomized algorithms graph search shortest paths data structures greedy algorithms minimum spanning trees dynamic programming NP-completeness and more

Courses Duration Effort Prerequisites
Algorithms: Design and Analysis, Part I 8 weeks 4-8 hours/week any programming language, Mathematics for Computer Science
Algorithms: Design and Analysis, Part II 8 weeks 4-8 hours/week Part I

Core applications

Topics coveredAgile methodology REST software specifications refactoring relational databases transaction processing data modeling neural networks supervised learning unsupervised learning OpenGL raytracing block ciphers authentication public key encryption and more

Courses Duration Effort Prerequisites
Databases 12 weeks 8-12 hours/week some programming, basic CS
Machine Learning 11 weeks 4-6 hours/week linear algebra
Computer Graphics 6 weeks 12 hours/week C++ or Java, linear algebra
Cryptography I 6 weeks 5-7 hours/week linear algebra, probability
Software Engineering: Introduction 6 weeks 8-10 hours/week Software Construction – Object-Oriented Design
Software Development Capstone Project 6-7 weeks 8-10 hours/week Software Engineering: Introduction

Advanced CS

After completing every required course in Core CS, students should choose a subset of courses from Advanced CS based on interest. Not every course from a subcategory needs to be taken. But students should take every course that is relevant to the field they intend to go into.

The Advanced CS study should then end with one of the Specializations under Advanced applications. A Specialization’s Capstone, if taken, may act as the Final project, if permitted by the Honor Code of the course. If not, or if a student chooses not to take the Capstone, then a separate Final project will need to be done to complete this curriculum.

Advanced programming

Topics covereddebugging theory and practice goal-oriented programming GPU programming CUDA parallel computingobject-oriented analysis and design UML large-scale software architecture and design and more

Courses Duration Effort Prerequisites
Compilers 9 weeks 6-8 hours/week none
Software Debugging 8 weeks 6 hours/week Python, object-oriented programming
Software Testing 4 weeks 6 hours/week programming experience
LAFF: Programming for Correctness 7 weeks 6 hours/week linear algebra
Introduction to Parallel Programming 12 weeks C, algorithms
Software Architecture & Design 8 weeks 6 hours/week software engineering in Java

Advanced math

Topics coveredparametric equations polar coordinate systems multivariable integrals multivariable differentialsprobability theory and more

Courses Duration Effort Prerequisites
Calculus: Parametric Equations and Polar Coordinates single-variable calculus (Calculus Two)
Multivariable Calculus 13 weeks 12 hours/week Parametric Equations and Polar Coordinates
Introduction to Probability – The Science of Uncertainty 18 weeks 12 hours/week Multivariable Calculus

Advanced systems

Topics covereddigital signaling combinational logic CMOS technologies sequential logic finite state machinesprocessor instruction sets caches pipelining virtualization parallel processing virtual memory synchronization primitives system call interface and more

Courses Duration Effort Prerequisites
Electricity and Magnetism, Part 11 7 weeks 8-10 hours/week calculus, basic mechanics
Electricity and Magnetism, Part 2 7 weeks 8-10 hours/week Electricity and Magnetism, Part 1
Computation Structures 1: Digital Circuits 10 weeks 6 hours/week electricity, magnetism
Computation Structures 2: Computer Architecture 10 weeks 6 hours/week Computation Structures 1
Computation Structures 3: Computer Organization 10 weeks 6 hours/week Computation Structures 2

1 Note: These courses assume knowledge of basic physics. (Why?) If you are struggling, you can find a physics MOOC or utilize the materials from Khan Academy: Khan Academy – Physics

Advanced theory

Topics coveredformal languages Turing machines computability event-driven concurrency automata distributed shared memory consensus algorithms state machine replication computational geometry theory propositional logicrelational logic Herbrand logic concept lattices game trees and more

Courses Duration Effort Prerequisites
Introduction to Logic 10 weeks 4-8 hours/week set theory
Automata Theory 8 weeks 10 hours/week discrete mathematics, logic, algorithms
Reliable Distributed Systems, Part 1 5 weeks 5 hours/week Scala, intermediate CS
Reliable Distributed Systems, Part 2 5 weeks 5 hours/week Part 1
Computational Geometry 16 weeks 8 hours/week algorithms, C++
Introduction to Formal Concept Analysis 6 weeks 4-6 hours/week logic, probability
Game Theory 8 weeks x hours/week mathematical thinking, probability, calculus

Advanced applications

These Coursera Specializations all end with a Capstone project. Depending on the course, you may be able to utilize the Capstone as your Final Project for this Computer Science curriculum. Note that doing a Specialization with the Capstone at the end always costs money. So if you don’t wish to spend money or use the Capstone as your Final, it may be possible to take the courses in the Specialization for free by manually searching for them, but not all allow this.

Courses Duration Effort Prerequisites
Robotics (Specialization) 26 weeks 2-5 hours/week linear algebra, calculus, programming, probability
Data Mining (Specialization) 30 weeks 2-5 hours/week machine learning
Big Data (Specialization) 30 weeks 3-5 hours/week none
Internet of Things (Specialization) 30 weeks 1-5 hours/week strong programming
Cloud Computing (Specialization) 30 weeks 2-6 hours/week C++ programming
Full Stack Web Development (Specialization) 27 weeks 2-6 hours/week programming, databases
Data Science (Specialization) 43 weeks 1-6 hours/week none
Functional Programming in Scala (Specialization) 29 weeks 4-5 hours/weeks One year programming experience

Final project

OSS University is project-focused. You are encouraged to do the assignments and exams for each course, but what really matters is whether you can use your knowledge to solve a real world problem.

After you’ve gotten through all of Core CS and the parts of Advanced CS relevant to you, you should think about a problem that you can solve using the knowledge you’ve acquired. Not only does real project work look great on a resume, the project will validate and consolidate your knowledge. You can create something entirely new, or you can find an existing project that needs help via websites like CodeTriage or First Timers Only.

Another option is using the Capstone project from taking one of the Specializations in Advanced applications; whether or not this makes sense depends on the course, the project, and whether or not the course’s Honor Code permits you to display your work publicly. In some cases, it may not be permitted; do not violate your course’s Honor Code!

Put the OSSU-CS badge in the README of your repository! Open Source Society University - Computer Science

  • Markdown: [![Open Source Society University - Computer Science](](
  • HTML: <a href=""><img alt="Open Source Society University - Computer Science" src=""></a>


Upon completing your final project, submit your project’s information to PROJECTS via a pull request and use our communitychannels to announce it to your fellow students.

Your peers and mentors from OSSU will then informally evaluate your project. You will not be “graded” in the traditional sense — everyone has their own measurements for what they consider a success. The purpose of the evaluation is to act as your first announcement to the world that you are a computer scientist, and to get experience listening to feedback — both positive and negative — and taking it in stride.

The final project evaluation has a second purpose: to evaluate whether OSSU, through its community and curriculum, is successful in its mission to guide independent learners in obtaining a world-class computer science education.

Cooperative work

You can create this project alone or with other students! We love cooperative work! Use our channels to communicate with other fellows to combine and create new projects!

Which programming languages should I use?

My friend, here is the best part of liberty! You can use any language that you want to complete the final project.

The important thing is to internalize the core concepts and to be able to use them with whatever tool (programming language) that you wish.

Pro CS

After completing the requirements of the curriculum above, you will have completed the equivalent of a full bachelor’s degree in Computer Science, or quite close to one. You can stop in the Advanced CS section, but the next step to completing your studies is to develop skills and knowledge in a specific domain. Many of these courses are graduate-level.

Choose one or more of the following specializations:

These aren’t the only specializations you can choose. Check the following websites for more options:

Where to go next?

  • Look for a job as a developer!
  • Check out the readings for classic books you can read that will sharpen your skills and expand your knowledge.
  • Join a local developer meetup (e.g. via
  • Pay attention to emerging technologies in the world of software development:
    • Explore the actor model through Elixir, a new functional programming language for the web based on the battle-tested Erlang Virtual Machine!
    • Explore borrowing and lifetimes through Rust, a systems language which achieves memory- and thread-safety without a garbage collector!
    • Explore dependent type systems through Idris, a new Haskell-inspired language with unprecedented support for type-driven development.

keep learning

originally posted on Github ->  source

Microphone not working in Windows 10 (What to do?)

In this guide, we will talk about one of the biggest issues in Windows 10: the microphone issue. In general, Windows 10 doesn’t work easily with many recording devices, even if they’re built in to the computer. What we’ve found through our experience is that if a mic connected to a computer isn’t working it’s usually a settings problem, and not a problem with the microphone itself.

So first of all, make sure it’s not a hardware issue

Let’s check that your mic isn’t damaged or faulty first and get that out of the way. The best way to check that is to connect your microphone to another computer running any version other than Windows 10. If the microphone doesn’t work on the other computer too, that means it could be faulty. If it does work on the other computer that means you may have a software problem on your Windows 10 computer.

On both PCs, if you’re using a desktop computer (not a laptop), make sure you’re connecting your microphone or headset to the back panel of the PC. The front audio ports aren’t always well connected to the motherboard.

Now that we know that it is a software problem, let’s get it fixed.

Uninstall and reinstall your microphone drivers

  1. Open device manager, fastest way is through the search bar:device-manager-search
  2. Open ‘Audio Inputs and Outputs’audio-inputs-and-outputs
  3. Left-click on your recording device.
  4. In the menu that opens up Click ‘Uninstall’.
  5. Physically disconnect your microphone from the computer.
  6. Restart the computer.
  7. Reconnect microphone and let Windows re-install the drivers.
  8. If your Windows 10 updating gets stuck, this may prevent you from getting the latest drivers automatically. Check this guide to fix it.
  9. If it didn’t work, I would suggest that you install the latest driver found on your computer manufacturer’s website manually, because sometimes the latest driver isn’t the one compatible with your computer. So you should search for your computer model number on the manufacturer’s website, download the latest driver that is compatible with your model number and Windows 10 and check if it works.
  10. If you found your computer model on the website but can’t see a version for Windows 10 there, this means there aren’t compatible drivers for it yet and you may have to wait until they release some new drivers.


Some websites/apps to enhance productivity and skill sets

I am going to mention some websites and Apps here and I want to make it clear that I am in no way affiliated to any product here. I am writing about these products because I find them productive.

To be able to get the best out of these, it’s necessary that you stay consistent with the apps and websites and believe me you will get results.

  1. Highbrow: Highbrow is an email based service that delivers you daily lessons via email for the course that you have subscribed to. There are a variety of courses ranging from Language, History to Psychology and Marketing. The Courses are very well written and served in little chunks of 5 minute daily read.

You cannot subscribe to more than one course since that will mess up with your routine. So,One lesson at a time served via email daily in the morning. You just have to take out 5 minutes daily for this.

2. Franz: Franz is an application available for Windows, Mac and Linux. It’s a great application for productivity. Franz lets you run 23 apps inside one app i.e. Franz. You can use your Whats App, Slack, Gmail, Messenger, Skype, Outlook, Telegram and many other apps inside this single app.

The best part about this app is these apps utilise less CPU memory than the apps running individually. Franz saves you the hassle of switching between tabs and devices. I totally love it and keep suggesting it to everyone .

Download Franz

3. CanvaCanva is photoshop for everyone who doesn’t know Photoshop. You can use it online and you can also download it on your phone if you want to work on the go. Canva lets you design beautiful graphics for Facebook, Instagram, Twitter, E-mails or flyers, poster or custom ones.

The best part about this app is that it has pre-defined templates for everything that are scaled as per the requirement. Beautiful Templates and variety of Fonts just do the half of the creativity work.

The Canva design guide also teaches you how to match up fonts for better looking designs.

4. Pocket: Pocket is a great app to save articles to read later if you don’t have time right now and cannot remember the link later. You just have to install an extension in your browser on your desktop and download the app in your phone. Log in with the same Id on both the devices and whenever you save an article, it goes into your pocket list. You can read it later at the end of the day or in free time.

You get recommendations from other pocket users and you can recommend them too. Pocket is slowly turning into an network and I love that.

If you’re an avid reader like me, Pocket works like magic.



5. Elvate: Elevate is an iOS and Android app that helps you sharpen your brain with exercise for Math, reading, writing and Concentration. The App measures your current status by taking a test and then assigns value for every skill that you want to improve.

You are then allotted daily lessons in the form of games with beautiful animations. Elevate was the 2014 app of the year and it has every reason to be. It’s got engaging content. It tracks your progress and shows you result from time to time. It’s fun and learning at the same time.



6. Lumosity: Lumosity is also an app just like Elevate but it has different game and way to achieve the same things. You solve problems and learn things every day. There is not much to tell about Lumosity since I have described Elevate but it’s a great app just like Elevate.

7. Google Calendar: You might be aware of this one but let me tell you how good it is. I use Google Calendar for scheduling meetings, Setting up my daily routine, reminders, to- do and Daily goals. It’s a power house for productivity and it’s connected to your Google account. So you get reminders in mail, app and every other Google app that’s connected.

I have used many to do apps and by many, I mean almost every one out there but nothing comes close to this one.


8. Stumble Upon: Stumble Upon is a website where you stumble upon things f your interests. You choose your interests and you’re good to go. Everytime you clickon the stumble upon sign, it throws at you a random article from the internet related to your interest. It’s a great website and app to learn things concerning your interest.

Stumble Upon can also sit in your widget area and give you suggestions for the app.


9.Lynda: Lynda is an online collection of tutorials ranging from photography to marketing to IT expertise. There are a large variety of course and the teachers have done a great job covering them up in detail and to the point. You can collaborate with other users on projects given by the teachers.

You get a 10 Day trial before paying. Choose a course, take the trial and if you like it, subscribe.

10.UP by Jawbone: Okay, This app is for physical productivity. Up measures you daily activity and registers them to give you the desired results. You tell the app about your goals, be it weight loss or weight gain. It then measures your daily efforts and the efforts required to achieve the goals.

The app also tracks your calorie count and sleep pattern in order to give you better results. If you’re using it with a tracker, you will be delighted but it works great without a tracker too. The app has great reminders to tell you about when to sleep and what to eat.


11. Grammarly: Have you ever struggled while writing for an assignment or something as such with the Grammar. When you’re not sure about if the sentence is grammatically correct. Welcome Grammarly. Grammarly is a website as well as comes with a browser extension which marks out any grammatical mistakes from your writing and suggests alternatives for the same. The free version is great but if you’re into academic writing or pretty serious about your writing, you can try the paid version too.

12. Boomerang: Boomerang was recently introduced at Product Hunt and you can get your hands on it now. Boomerang is for the people who have a hard time dealing with their e-mails. Boomerang can schedule your emails for the future. You can archive them for the time when you want to follow them later. It works with Gmail right now(not inbox), only Gmail.

The best part about Boomerang is the Respondable. Respondable uses artificial intelligence to give you better tips on how to write the right email. It helps you use the right tone so that your e-mails really work.

News highlight of the day(7-11-17)

How to be a Successful Entrepreneur

Entrepreneurship often refers to as running your own business but Entrepreneurship is much broader than the creation of a new business venture, At its core, it is a mindset – a way of thinking and acting. It is about imagining new ways to solve problems and create value. To make the world a better place.Regardless of how you define an “entrepreneur,” one thing is certain: becoming a successful entrepreneur isn’t easy.

So, how does one person successfully take advantage of an opportunity, while another, equally knowledgeable person does not? Do entrepreneurs have a different genetic makeup? Or do they operate from a different vantage point, that somehow directs their decisions for them?

Though many researchers have studied the subject, there are no definitive answers. What we do know is that successful entrepreneurs seem to have certain traits in common. Entrepreneurship is the pursuit of opportunity beyond resources controlled.


Entrepreneurial Myths

Here’s a bit more on the perceived hurdles:

  • Innovation/Idea: most ideas have been thought of before, and all will have competition. Success comes down to executing on your idea well and finding the right customers where you can solve their needs better. Think of all your favorite companies, and chances are, there was already someone doing a startup very similar when they founded.
  • Time: starting a company does take time, and this just comes down to managing your time well. Focus on the things that matter most, and remember that perfect is the enemy of done. Recall also that many great ventures start as side projects, which is why companies like Google allow their employees 20% of their time to work on projects they think will benefit the company. Check out this article for more on when to go all-in with your startup, and this one for why the overnight success myth isn’t real.
  • Team: you can do a lot on your own, though when you do go to find teammates, understand the gravity of this decision and what is most important in choosing a great team. Check out this post for more.
  • Funding: the average amount to start a company is only about $10,000 – $30,000 (depending on the source — Kaufman Foundation estimates $30,000, while the Small Business Association quotes smaller numbers). Most entrepreneurs fund their company either on their own, or with a small loan from friends and family. Media skews what is needed to start something with the few outliers who raise millions of dollars, but the truth is, it usually requires much less.


Points to consider while starting your own company:-

  • Pursuit: the actions of an individual entrepreneur — drive, resiliency, focus, discipline, and balance
  • Opportunity: the type of venture — a better, cheaper, or more efficient offering for the customer
  • Beyond resources controlled: managing the risks of external constraints

2. Interpersonal Skills

  • Leadership and Motivation
  • Good Communication Skills
  • Good Listening skills
  • Negotiation
  • Ethics

Finding Opportunities

Look for ways that current customers of the market aren’t fully satisfied with the solutions available, plus look for potential customers who do not have access or skills for current offerings.

  • List your own underserved needs or frustrations
  • Listen to customers in this market about their frustrations
  • Watch your competitors — both top companies and newly hyped companies in the industry, assessing their strengths and weaknesses. Read online customer reviews of current offerings and identify their biggest unmet needs.
  • Assess barriers to being a customer to see if there are certain skills, access, awareness, etc. that makes the offering accessible to these customers, but prevent it from being desirable or accessible to others.



  • Optimism
  • Vision
  • Resilience
  • Drive and Persistence



Relationships are hard, and this is especially true in startups, when the ups and downs of the process cause emotions and tensions to run high. Startups are much more likely to fail due to issues within the founding team than any other problem. Sixty-five percent of startup failures result from “people problems,” compared with only thirty-five percent failing for any other reason—including funding, customer acquisition, and product development.

You can minimize interpersonal challenges by finding the right co-founders and setting up expectations for how you’ll work together. The success of a team can be broken down into three parts:

  • Design – finding the right complementary co-founders.
  • Launch – setting expectations and norms.
  • Process – managing the culture relative to norms and expectations.

While you may be tempted to startup your company alone, keep in mind that there can be a lot of potentially valuable reasons to have co-founders: complementing your skills, getting a more well-rounded perspective, having support through the ups and downs of a startup, and more.


 Critical and Creative Thinking Skills

  • Creative Thinking
  • Problem Solving
  • Recognizing Opportunities


Team Design

Team design is about having the right people—finding co-founders with a similar vision and values, and with complementary personalities and skills. Many entrepreneurs start by finding others who have similar interests, like their friends. Instead, entrepreneurs should start look for people who have the same values and reasons for wanting to start a business. Skills can be learned and interests can change, but shared values and motivation create a strong foundation.

  1. Shared vision – have a common “why”. The best cofounder teams have similar drives for starting their company, and this plays out in their decisions as they develop and grow the business.
  2. Complementary skills – we refer to three types: the builder, brander, and business developer
    • The builder is the technical co-founder and product developer. This may include skills of coding or product prototyping.
    • The brander connects the customer to your offering, including marketing, brand guidelines, and visual design.
    • The business developer is the operations, finance, and sales person. This person hustles to get the right partners and customers.
  3. Shared interests – (least important) Once you’ve aligned with compatible teammates around similar values, it becomes surprisingly easier to find common ground to develop business ideas.

While there is no one “right” set of characteristics for being a successful entrepreneur, certain general traits and practical skills will help you succeed.

By examining your own personal strengths and weaknesses and comparing these with those of the typical entrepreneur, you can get a sense of how well this career will fit with your personality.

Remember, becoming an entrepreneur is a career decision like any other. Do your homework, look at your needs and desires, and then decide whether this path is for you.



News Highlights of the day (11-5-17)

Mystery void is discovered in the Great Pyramid of Giza


Some 4500 years ago, the ancient Egyptians built the Great Pyramid of Giza as a tomb for the pharaoh Khufu, also known as Cheops, one that would ferry him to the afterlife. Now, using subatomic particles raining down from the heavens, a team of physicists has found a previously unknown cavity within Khufu’s great monument.

“Such a big void can’t be an accident,” says Mehdi Tayoubi, president of the non-profit Heritage Innovation Preservation Institute in Paris, who led the research. The discovery has already stirred the interest of archaeologists and particle physicists alike.

Made of an estimated 2.3 million stone blocks and standing 140 meters tall and 230 meters wide, the Great Pyramid is an engineering mystery, much like its two smaller sister pyramids, Khafre’s and Menkaure’s. Archaeologists know that it was built for Khufu, who died in 2566 B.C.E. But they have long wondered exactly how the pyramid was constructed and structured.

Now, archaeologists are getting help from an unlikely source: cosmic rays, subatomic particles that rain down from space. In fact, a team of physicists has found a previously unknown void within the pyramid by imaging it with muons, high-energy byproducts of cosmic rays that are created when protons and other atomic nuclei strike the atmosphere.

Every minute, tens of thousands of muons pass through each square meter of Earth. The particles are much like electrons but 207 times as massive. Because they’re so heavy, the negatively charged particles can travel through hundreds of meters of stone before being absorbed—whereas electrons make it only a few centimeters. So just as doctors use x-rays to look into our bodies, physicists can use muons to peek into thick structures—from volcanoes to disabled nuclear power plants. To do that, all researchers need to do is to place a muon detector, such as tile-sized special photographic films, underneath, within, or near an object and count the number of muons coming through the thing in different directions.

One of the first times scientists used muon imaging was to search for hidden chambers in Khafre’s pyramid at Giza in the late 1960s. None was discovered. This time around, after a 2016 experiment revealed anomalies that could indicate something behind its walls, scientists set out to image Khufu’s pyramid. To do that they placed various direction-sensitive muon detectors in the queen’s chamber and in an adjacent corridor within the pyramid and at its base on the north side, and analyzed the collected data every 2 to 5 months. As proof of principle, they confirmed the presence of three known large cavities: the queen’s and king’s chambers, and a long corridor that connects them, known as the grand gallery.

But, just above the grand gallery the researchers also spotted a new void area, they report today in Nature. The new cavity is nearly 8 meters high, 2 meters wide, and at least 30 meters long—like a cathedral, but much narrower—and it rises 20 meters above the ground in the pyramid’s core.

The scientists have “seen” the void using three different muon detectors in three independent experiments, which makes their finding very robust, says Lee Thompson, an expert in particle physics at the University of Sheffield in the United Kingdom who was not involved in the work. But the cavity’s detailed structure remains unclear: It might be one or many adjacent compartments, and could be horizontal or slanted.

At this stage, the cavity’s function can only be guessed. Because it is inaccessible, it probably isn’t a burial chamber, says archaeologist Mark Lehner, director of Ancient Egypt Research Associates in Boston, who was not involved in the research. “It’s not the ideal place to contain a body,” he says. It could have purely symbolic meaning, as a passage for the pharaoh’s soul, Tayoubi says.

Zahi Hawass, an Egyptologist based in Cairo who chairs the committee that reviewed the research project, cautions against calling the cavity a “secret room,” as pyramid builders often left large gaps between stone blocks, a construction strategy that makes the pyramid’s core look like Swiss cheese. The void might simply have served to relieve the weight of the stone blocks above the grand gallery to preserve it from collapse, like the five compartments, stacked on top of each other, that protect the king’s chamber in the same pyramid, Lehner says.

To answer questions about the cavity’s structure and function, the researchers hope to do more muon imaging experiments with finer resolution. This means placing more detectors inside and near the pyramid that collect data for longer—up to several years, Tayoubi says. Understanding the detailed structure of the cavity could also help determine how the Great Pyramid was built in the first place, whether using external ramps or internal passages through which stone blocks were carried to the higher levels of the structure.

Until then, the new finding, although “impressive,” doesn’t dramatically change the way we think about pyramids, Lehner says. But other scientists, such as particle physicist Guido Saracino of the University of Naples Federico II in Italy, are thrilled. According to Saracino, this work confirms that particle physics can have important practical applications, including archaeological surveys. And one day it may help scientists figure out how the ancient pyramids were built.