From Rosetta Code
Languages I use
Language Proficiency
Java Advanced (active)
BASIC Beginner (atrophied)
C Beginner (atrophied)
C++ Beginner (atrophied)
Common Lisp Super Beginner (atrophied)
Ruby I looked at it once
Prolog Super Beginner
Visual Basic Super Beginner (could probably pick it up)
Brainf*** I know all of the commands
Languages I don't want to use
Languages Reasons
J it has no words
Ursala looks too much like J [1]


I am Mike Neurohr, an RIT graduate who majored in computer engineering. If you don't know what that is, mix computer science and electrical engineering, then add Assembly and transistors, and you got it. You can see some of my code and philosophy theory ramblings on my web page (some links in the "Projects" section below go to my website as well). I have learned to code based on the RIT coding standard (which hasn't gotten me in trouble with other nerds yet), but sometimes I abandon minor rules for convenience (using "continues" and ternary operators).

I am originally from Pennsylvania. I had a co-op job at Spectracom from December 2007 to March 2008 in Rochester, NY. My previous job was as a TA for a Java class at RIT (which I usually returned to when I wasn't on co-op), where I started doing a lot of my RC editing. I also advertised RC to the kids while I worked as a TA. My next job was another co-op at Thomson-Reuters (formerly Thomson-West), where I tested software (mostly using JUnit). I worked from June through November 2009 at CIMS, a lab at RIT. I started work at Bank of America (Charlotte, NC) in August 2010.

I'd like to teach programming, but I'd like to not go to grad school. I probably should have majored in CS, but I didn't realize this until it was too late to go back (so I got a minor instead).

I end up doing a lot of structural editing on RC. I like to see this site looking good and working properly. People are coming here to get programming help. The languages they're looking at are hard enough to use without a difficult website on top of it, so we should be as organized and logical as possible. My 6000th edit was adding a separate page for a long solution for Morpion solitaire.

I used to live with Qrush and Slawmaster in what Slawmaster calls "the RC power-apartment." They have been inactive for a while, but I can sometimes get them to contribute a Lisp (Slawmaster) or Ruby (Qrush) example if a cool task arises.


I've primarily used C++ and Java, with some Ruby, C, and Motorola 68K Assembly (only Java and C professionally, and C was barely professional). I've also used BASIC (QuickBasic 4.5 in particular)--my first programming language. In high school, I learned QuickBasic, C/C++, Java, Apple IIe Assembly, Pascal, and Visual Basic (all somehow without learning what an object is...?). I mostly use Java now. I kind of wish I got money for every time I "Added a Java example." I have taken college classes in C and VHDL. At my first co-op, I used OPNET. The coding part of OPNET is C with some predefined functions (which usually make the program fail). All my other working experience (two other co-ops and my current job) has been in Java.

Coding Choices

Debugging method: Print statements (console or file)

Language: Java

Data structure: Linked List

Sorting algorithm: Bubble Sort for arrays, Merge sort for other collections, though really it's a question of dataset size

Editor: NetBeans for projects (Eclipse is OK too), notepad or equivalent for things I just want to try

Braces for one-line conditionals and loops: Not usually, but yes for a complex project, and the open brace is always on the same line as the conditional or loop

Program end on error: Exceptions and stderr, System.exit for Java GUI programs on window close (but it makes me feel bad)



I have been a Windows/Microsoft user for the longest time. I used DOS (playing Commander Keen and Duke Nukem) way back before I knew how to check versions and all. I used Windows 95, 98SE, 2000, XP, and 7. At college I started using UNIX and Solaris for CS (along with Emacs and Eclipse) and I've used GNU/Linux (Debian testing w/Gnome). The synaptic package manager was what drew me to it. If you haven't seen it, you'll be converted when you do. I've found that without Linux, I miss having multiple desktops (which I don't feel like installing for Windows). It has been hard to get the motivation to install Linux again. It probably won't happen for a while.


My perception of RC

(Some of these may overlap)

How I've used it

  • How the heck do I do this again?
  • What's an algorithm I can use to solve that problem?
  • This code is pretty similar or a small part of something I want to do. Lemme just get that...
  • This problem seems pretty simple. I bet someone on the Internet has done something about it--oop...yep...RC FTW.
  • This Wikipedia article and even the pseudocode on it make absolutely no sense to me. Oh here we go!
  • What was that incredibly trivial fact I learned years ago for one test and don't remember anymore?
  • People need a nicer explanation of this programming topic (e.g. Recursion).

How I've seen it used

  • I have a new job coding in X but I learned Y in college. Help!
  • Look at my sweet new language! (which may or may not be better than yours)
  • This program is kind of fun. How many languages can program it?
  • Hey I still know this incredibly old/under-used language. Let me throw some examples up here.
  • This fringe detail that only has occasional and minimal impact on the operation of this program is worded slightly wrong (see: word mincing).
  • English is not my/your first language so I/you don't communicate in a way that makes sense to you/me (this can manifest itself as long, confused arguments sometimes related to word mincing where people get angry and someone just gives up rather than people coming to the right conclusion).

How I want it to be used (No promises that I even use it these ways, see also: personal policies)

  • Here's a practical way to do this in language X that definitely works with a clear explanation.
  • Here is a nice explanation of this common problem/algorithm/programming topic.
  • You should start by looking at these examples when trying to learn language X.
  • This demonstrates a difference between language X and Y.
  • I don't know too much about programming. Maybe this site can help.

How I suspect some non-contributors may be using it

  • This task is exactly like/very similar to my recent homework assignment. Sweet! Now I don't have to really do the assignment.
  • I thought this problem/algorithm would have a simpler explanation here. I'm lost in notation and vocabulary. I'll look somewhere else.
  • This website has more language X/my language users/examples so it's better than language Y/your language. I win!

Personal Todo List

  • Add named lang and reason params to ENA templates
  • #foreach + Template:Language = awesome -- on hold
  • Translate RCRPG/Perl to Java (and BASIC if possible).
  • Forth interpreter task with a limited set of commands (thinking about using page 5 here for some)