While on DIC, I've seen a bunch of threads all asking basically the same
thing- how can I get better at programming? The simple truth is that
programming takes practice writing and debugging code. It is not
something that comes overnight. So for those of you relatively new to
(Java) programming, I've outlined a list of topics in a sequence from
total novice to advanced programming, with focuses on various aspects of
programming from data structures to Graphics to Networking.
I have also included a list of tutorials for most of the topics below. If you have a resource on Dream.in.Code that you feel would add to a given category, shoot me a PM!
Stage 1: You might fall into this category if you've never written a line of code before. Some things I would cover include:
Stage 2: If you have completed all the Stage 1 topics with a decent proficiency or are in the AP Computer Science or comparable class, then you should work on these topics. Note that all of these topics are critical to sucessful programming in Java, so you should have a strong handle on them before going onto stage 3:
Stage 3: If you have completed AP CS or Comparable Course and are proficient with all the above tools, then you may want to start on Stage 3 topics:
Stage 4: This is the advanced stuff, for which you should have a strong understanding of the previous 3 stages:
I'd be happy to update this list with additional topics as good suggestions are posted.
Original post was published at
I have also included a list of tutorials for most of the topics below. If you have a resource on Dream.in.Code that you feel would add to a given category, shoot me a PM!
Stage 1: You might fall into this category if you've never written a line of code before. Some things I would cover include:
- Hello, World (print() vs. println(), \n escape sequence)
- Primitive data types (byte, short, int, long, float, double, char, boolean)
-
Basic use of the String class and Primitive Wrappers for parse methods
(ie., Integer.parseInt(String)), JOptionPane vs. Scanner
- NeoTifa's Basic Java for N00blets Part 2- Important Classes (String, Scanner)
- William_Wilson's String Tutorial
- NeoTifa's Basic Java for N00blets Part 2- Important Classes (String, Scanner)
- If, Else-if, else statements; switch blocks, basic while, do-while, for loops, and relational operators:
- Arrays and foreach loop
Stage 2: If you have completed all the Stage 1 topics with a decent proficiency or are in the AP Computer Science or comparable class, then you should work on these topics. Note that all of these topics are critical to sucessful programming in Java, so you should have a strong handle on them before going onto stage 3:
- ArrayLists
- Methods
- smohd's Passing Objects to a Method
- xor-logic's Passing Information Between Methods
- NeoTifa's Basic Java for Beginners Part 3
- smohd's Passing Objects to a Method
- Class design (constructors, instance variables and non-static methods, use of static)
- Locke's Intro to Designing Classes
- Locke's Intro to Designing Classes Part II
- macosxnerd101's Moving Away From Parallel Arrays
- Elcric's Class Design Tutorial
- Elcric's Static Tutorial
- Dogstopper's toString() Tutorial
- pdkharkar's Tutorial on Constructors
- pdkharkar's Tutorial on the this keyword
- giggly kisses' Tutorial on Creating Your Own Objects
- Locke's Intro to Designing Classes
- Abstraction, Polymorphism (method overloading and overriding), Inheritance, and Interface design and usage
- Object-Oriented Design Patterns
- Working comfortably on a large project where most of the code is not yours.
Stage 3: If you have completed AP CS or Comparable Course and are proficient with all the above tools, then you may want to start on Stage 3 topics:
- Data Structures and Collections (Linked Lists, Stacks, Queues, TreeMaps, HashMaps, TreeSets, HashSets, Graphs)
- Advanced Generics (use of the wildcard operator and further parameterization; making your classes generic)
- Graphical User Interfaces (Swing and AWT), as well as Graphics and Graphics2D classes for animations
- Event-Driven Programming (possibly game programming)
- File I/O
- Exception Handling
- Database
- jeremejazz's Java to MySQL Connection (Using the JDBC-ODBC Bridge) Tutorial
- eXceed69's Java Connecting with an ODBC Tutorial
- alpha02's Using MySQL with Java Tutorial
- pbl's Inserting Java Objects Into an HSQLdb Database
- jeremejazz's Java to MySQL Connection (Using the JDBC-ODBC Bridge) Tutorial
- Proficiency at maintaining code, including refactoring
- Becoming comfortable with a domain-specific third party API. (i.e. something niche, not standard, and possibly poorly designed and a nightmare to work with)
- Finding performance bottlenecks and designing solutions.
Stage 4: This is the advanced stuff, for which you should have a strong understanding of the previous 3 stages:
- Networking, Client/Server design
- Threading
- Interacting with Websites and Webpages (ie., creating an RSS Feed Reader would fall into this category, while getting the webpage source might be more stage 3 topic)
- Advanced Applications of Reflection
- Drag and Drop with GUIs
I'd be happy to update this list with additional topics as good suggestions are posted.
Original post was published at
here
No comments:
Post a Comment