This gist descended from a blog post and made specific to my interests and accomplishments. Original Blog post
-
-
Save Nzen/2584199 to your computer and use it in GitHub Desktop.
Programming Achievements: How to Level Up as a Developer
Learn a variety of programming paradigms:
Write an application in an imperative language: C++, Oberon'7, DWrite an application in an object-oriented language: Java, SmalltalkWrite an application in a dynamic language: Python, RubyWrite an application with a query language: SQL, Tutorial D- Write an application in a functional language: Clojure, Sml, Haskell
- Write an application with aspect oriented components: AspectJ
- Write a program in assembly language: Pep8, MIPS, Dcpu10
- Write an application in a prototype-based language: Javascript, Io
- Write an application in a logic programming language: Prolog
- Write an application in a concatenative language: Forth
- Write an application using a language supporting the Actor model: Erlang, Scala
- Write an application in a design-by-contract language: Eiffel
Enhance understanding of the building blocks that we use as developers:
- Write a simple compiler: Basic
- Write a database manager: SimpleDB or MicroBase
- Write a multithreaded application: Handshake server
- Write a networking client: TCP, IRC bot
- Write a device driver: tape drive?
- Write a baysean spam filter or game AI
- Write an application that provides a plugin model
- Write a png renderer
- Write a toy operating system: OSP/2, unsw kernel utilities
Experience the ins and outs of programming for different platforms:
- Write a nontrivial desktop app
- Write a nontrivial web app
- Write a nontrivial mobile app
- Write a nontrivial game
- Write a nontrivial embedded app
Learn a variety of editors/IDEs:
Use Visual Studio exclusively for a monthUse Eclipse exclusively for a month- Use emacs exclusively for a month
- Use IDLE exclusively for a month
- Use XCode exclusively for a month
Enlighten yourself with koans, katas, and the wisdom of ages:
- Complete five code katas
- Complete the programming koans for a language that you want to learn
Contribute a literate program- Read SICP and complete all the exercises
- Attend a code retreat
Program in the open:
- Contribute to an open source project
- Have a patch accepted
- Earn commit rights on a significant open source project
- Gather a following on my own open source project
Learn by teaching others:
- Present a lightning talk:
git/hub tutorial - Present at a local user group:
encrypted databases - Publish a tutorial
- Publish a constructive code review of an open source project
- Vacation scheduler (printable date constraint calendar)
- (BR) Model class generator (finish the data type analysis)
- java certification
- Website compiler from gradle or cocoon
- Vacation scheduler (printable date constraint calendar)
- PDistillery (plugin focused website compiler) OR a website compiler from gradle / cocoon
- pay bills
- ergodox labels
- tingbot
- blog posts; write them, convert old ones
- E2 yearnodes: 1936 1987 1924 ^ 1978 1995 ^ 1945 2007 1896 1954 2013 1908
- reorganize files to a project orientation
- cheeaun life ;; with labella.js ?
- scan journals
- memoto cover
- sudoku android app
- priest game
- Model class generator (finish the data type analysis)
- study the pricing module
- gen a dotlang of the BR db erd (for my wall?)
- keepass emitter for admin site
- dotlang planning emitter
- Dao class generator (freestanding, so bbx can invoke it)
- zpl birt emitter
- ms shortcut creator
- sql / java / BR-dsl noteeditor with RSyntaxTextArea
- kill sessions for update (with some anti-tamper/forgetful mechanism)
- Presentation : JavaFx, React.js, Lanterna
- Programming Language : Clisp, C, Erlang, XSLT
- Platform : Gradle, Tomcat, Android, Pentaho, Webassembly
- java certification
- CS 331 - Design and Analysis of Algorithms
- CS 365 - Computer Architecture
- CS 408 - Programming Languages
- CS 431 - Operating Systems
- CS 480 - Software Engineering
- CS 356 - Object-Oriented Design and Programming
- CS 370 - Parallel Processing
- CS 411 - Compilers and Interpreters
- CS 420 - Artificial Intelligence
- CS 470 - Game Development
- Classical Software Studies: VisiCalc, AppleWorks, Robot Odyssey, Zork, MacPaint, Oberon, 500lines
- noiseware from jlooch, boodler, applpi
- programming font
- learn programming languages : AspectJ, Groovy, Oberon, Forth/Factor, Haskell, Nim, C#, Elixer, Prolog, Ocaml/Sml, Ada, Lua
- simple english articles : svg, compiler
- js canvas calendis for exotic calendars
- implement dbms : simpleDB/minibase
- toy netflix homework, spy game
- javafx 'ncurses' (perhaps for laterna)
- picolove ide extensions
- cross linked cpu / os / software timeline for my office
- book scanner
- volkswanderung game
- advanced python bst functions: to optimal, merge, split
- naive mips register allocator
- multiplayer monopoly
- directory contents summarizer
- ascii art birt emitter
- time travel IF game with propagating consequences
- implement compiler : (lang) kalidescope, tinylisp, pascal, C ;; (targets) llvm, dcpu-16, mips v1, risc v, arm
- implement web browser
- implement os : tutorials ;; study oberon, templeos, fishbarrel, unikernel, riscos, yalo, plan9
- implement a png decoder
- implement a satellite telemetry simulation
- grappa (graphviz)
- calibre: pdf/html columns
- pyjvm
- asciinema: show keypresses
- hoon, urbit
- sphinx (doc gen)
- metalsmith (site gen)
- CS 445 - Computer Graphics
- ECE 207 - Network Analysis
- ART 251A - Lettering and Typography
- CS 435 - Database Systems
- ECE 220 - Electronic Devices and Circuits
- MHR 318 - Organizational Behavior
- CS 450 - Computability
- ECE 309 - Control Systems Engineering
- CS 460 - Secure Communication
- ECE 325 - Design of Digital Circuits
- CS 301 - Numerical Methods
- ART 342A - Technical Illustration
- MAT 370 - Graph Theory
- CIS 310 - Management Information Systems
- ECE 341 - Introduction to Microcontrollers
- CS 245 - Programming Graphical User Interfaces
- ECE 404 - Robotics
- ACC 207/207A - Financial Accounting for Decision Making
- ART 253A - Design and Color Theory
- TOM 301 - Operations Management
- CIS 307 - Business Telecommunications
- ECE 426 - Operating Systems for Embedded Applications
- CS 260 - Unix and Scripting
- ART 311 - History of Design
- CHM 340 - The Chemist in Industry
- CIS 433 - Information Systems Auditing
- MAT 216 - Differential Equations
- CIS 467 - Network Security
- MAT 380 - Mathematics of Operations Research
- MAT 470 - Combinatorics
- FRL 330 - Investment Analysis
- IE 429/429L - Discrete Systems Simulation
- CHM 409 - Polymer Chemistry
- MFE 217/217L - Manufacturing Processes
- CIS 481 - Computer Forensics
- IME 112 - Industrial Engineering Fundamentals
- CHM 342/342L - Spectroscopic Methods
- IBM 330 - Marketing Research
- MU 120 - Music Theory
- IME 326 - Supply Chain Planning and Control
- MFE 465 - Metal Working Theory and Applications
- CHM 344/344L - Electroanalytical Methods
- PLS 207 - Introduction to Public Law
- ME 218 - Strength of Materials
- IME 239 - Industrial Costs and Controls
- FRL 201 - Legal Environment of Business Transactions
- EC 407 - History of Economic Thought
- FST 232/232L - Food Process Engineering
- IME 415/415L - Statistical Quality Control
- ME 301 - Thermodynamics
- FRL 300 - Managerial Finance
- FST 420/420L - Food Chemistry
- GEO 315 - Urban Geography
- ME 311 - Fluid Mechanics
- TH 231/231A - Principles of Theatrical Design
- GSC 300/300L - Introduction to Geochemistry
- ME 315 - Engineering Materials
- MIC 320/320L - Food Microbiology
- GSC 215/215L - Mineralogy
- ME 316 - Intermediate Dynamics
- MFE 201/201L - Manufacturing Systems Processes
- URP 337/337L - Planning Public Infrastructure
- MU 129 - Songwriting
- GSC 433/433L - Ore Deposits
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment