Skip to content

Instantly share code, notes, and snippets.

@Nzen
Forked from nivertech/about.md
Last active December 5, 2022 23:15
Show Gist options
  • Save Nzen/2584199 to your computer and use it in GitHub Desktop.
Save Nzen/2584199 to your computer and use it in GitHub Desktop.
Programming Achievements: How to Level Up as a Developer

Programming Achievements: How to Level Up as a Developer

This gist descended from a blog post and made specific to my interests and accomplishments. Original Blog post

Learn a variety of programming paradigms:

  • Write an application in an imperative language: C++, Oberon'7, D
  • Write an application in an object-oriented language: Java, Smalltalk
  • Write an application in a dynamic language: Python, Ruby
  • Write 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:

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 month
  • Use 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:

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

Top Plate

  • Vacation scheduler (printable date constraint calendar)
  • (BR) Model class generator (finish the data type analysis)
  • java certification
  • Website compiler from gradle or cocoon

Projects

  • 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

Work projects

  • 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)

Tools to use, eventually

  • Presentation : JavaFx, React.js, Lanterna
  • Programming Language : Clisp, C, Erlang, XSLT
  • Platform : Gradle, Tomcat, Android, Pentaho, Webassembly

Education

  • 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

Fantasy

  • 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

Study and contribute to

  • grappa (graphviz)
  • calibre: pdf/html columns
  • pyjvm
  • asciinema: show keypresses
  • hoon, urbit
  • sphinx (doc gen)
  • metalsmith (site gen)

Education II

  • 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