The motivation behind this course came from an article titled “Why Can’t Programmers Program?” by Jeff Atwood. It talks about how poorly many candidates perform in coding interviews.
Surprisingly a large fraction of applicants, even those with masters’ degrees and phds in computer science, fail during interviews when asked to carry out basic programming tasks such as iterate over a loop and print numbers from 1 -10 . Or solve the common fizz buzz problem. And I’ve experienced this first hand when I interview candidates for software development positions. They could have an impressive academic background as well as experience in various technologies and software projects, but when posed with an interesting programming problem, their code falls apart. The fact is, you don’t need a college education to become a good programmer. Simply there is a big divide between people who can program and those that can’t. It’s my experience that the difference has to do with mastering the fundamental building blocks of programming. And that’s basically method level coding and the mastery of topics like string manipulation, lists, loops, logic and recursion. These are fundamental granular components shared by all programming languages. Think of these as the tools a programmer can use to solve problems. And you really gotta know your tools well to be proficient at the craft!
You can’t learn programming by reading books. The fact is you just need a lot of practice. If you want to be a superb programmer, you have to program a lot and work on solving challenging problems that stretch your capabilities. This course offers a systematic and structured way for you to acquire that practice using only a subset of the java language without getting side tracked in other areas of software development. Every concept comes with a coding challenge. I ask you to try solving the challenge on your own before I go over the solution in detail. This approach has worked time and time again for my students.
What are the requirements?
Have access to internet and the willingness to learn computer programming
What am I going to get from this course?
tackle any programming problem and once and for all have a command over the coding profession
apply razor sharp logic skills you learned in the course to tackle any coding challenges that come your way
acquire confidence to rock coding interviews
What is the target audience?
If you want to sharpen your programming skills by solving a bunch of programming problems to finally have a command over the programming profession, this course is for you!
If you want to become a kick-ass problem solver using java, this course is definitely for you!
If you want to just watch lectures passively while having popcorn without working on the programming puzzles, then this course is NOT for you!
|Section 1: Basics of Programming in Java|
How to Setup your development environment
Download The Project Puzzles Workspace
Basics of Java Programming & the Main Method
Basics of String Manipulation + Assignment
String Manipulation Continued + Solution
Conditionals & Program Flow + Assignment & Solution
Using While Loops + Assignment & Solution
Using For Loops + Assignment & Solution
Nested For Loops & Using the Eclipse debugger
Using Arrays + Assignment & Solution
Introducing Recursion + Assignment
Recursion Continued + Solution
|Section 2: Programming Puzzles|
Before You Begin the Puzzles
Logic Centric Puzzles + Solutions
More Logic Centric Puzzles + Solutions
Concluding Logic Puzzles + Solutions
Looping Puzzles + Solutions
Looping Puzzles Continued + Solutions
Recursion Puzzles (Coming Soon)
More Recursion Puzzles (Coming Soon)
|Section 3: Object Oriented Programming in Java|
Class And Object
Java Behind The Scenes
Interfaces and Abstractions
|Section 4: Basic Data Structures You Should Learn|
Abstract Data Types (Newly Added)
Stacks (HW Solution)
Where to go from here
Imtiaz Ahmad, Senior Software Engineer & Trainer @ Eliminate Code Fear
I’m a passionate software consultant and programmer of enterprise software architectures. I’ve spent a considerable amount of time building financial software on Wall St. and worked for companies like S&P, Goldman Sachs, AOL along with helping various startups solve mission critical software problems. In my 13 years of experience, I’ve developed massive enterprise level software using programming languages like Java, C++, Python, PL/SQL and Ruby. I’ve learned many lessons along the way, and I hope to share this knowledge with aspiring software developers. I’ve always had a passion for teaching in seminars and corporations during my consulting projects. My online school Eliminate Code Fear gives me the opportunity to share my knowledge with students of all backgrounds and experiences across the globe! I’m really excited for this opportunity to bring to you real-world practical experience! Join my initiative and we’ll work together to bring out the best programmer in you!