| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!

View
 

Becoming a Programmer

Page history last edited by Andy Pethan 13 years ago

One of the most unexpected outcomes of my leave of absence was my strong desire to become a good programmer during my last two years at Olin.  The desire came from a combination of experiences working on Alight Learning and a transformational moment at a conference on the Grand Challenges.

 

The world is more than a web portal for digital collaboration

Part of a start-up is learning how to re-focus your attention from a big problem (education) to a very specific problem (it is hard for teachers to setup collaborative digital environments for their students).  However, after working on the same business for a few months, you can start to believe that this focused problem is the solution to humanity and almost nothing else matters.  That's where I was at when we headed down to a conference on the Grand Challenges in Engineering hosted at Duke in late March.

 

Each major topic area had a keynote speaker or two that presented to the full group.  The one that I was excited about was Jeff Hawkins, founder of Palm and author of "on Intelligence," who was speaking about his work with computation, learning, and the functioning of the brain.  His talk completely blew my mind.  For an hour, Jeff talked about a topic that I was fascinated by -- understanding the brain -- but his work required a deep understanding on biology and neuroscience, theoretical computing, theories of learning, and more.  It completely rocked my tunnel-vision around web-app development and re-energized me to come back to Olin to learn a variety of things in the fall.  Even before Alight, I found that I was often far less interested in my coursework than my other Olin-related activities.  This was the first time I thought differently.

 

**And, as an incredibly exciting side note, Jeff Hawkins will be our graduation speaker!  I'm SO excited.

 

Action motivated by frustration

As a highly motivated student at an intense school, I expected a lot of things to just start working while we pushed forward with Alight.  However, we moved at a glacial pace: it was nearly April and we had made no software.  Whenever we were fairly confident in our designs and were ready to move forward, we found ourselves without the ability to execute on them.  Basically, nobody seemed to know how to build a web app and I was going crazy.

 

My new appreciation for learning from Jeff Hawkin's talk motivated me to take a more leading role on the software development side.  I bought a couple books about the back-end web framework we chose (CakePHP) and began to learn as quickly as possible.  By the time we brought on our summer intern crew of more experienced programmers, I was knowledgeable enough to quickly ramp them up on the back-end and have them ready to start working.

 

Course registration

Conveniently, Olin's fall course registration came shortly after the conference and my new-found energy to program.  As a result, I dedicated myself to a "year of software", knowing that I would be programming all summer, and then added a schedule full of only software related courses: computer architecture (how processors and digital logic works), software systems (how operating systems manage applications and computer hardware), discrete math (the mathematical principles behind most algorithm design), and human factors in interface design (how to design program interfaces that are usable by real people).  I still knew that my real passion was based around education, but I also knew that I needed a tangible skill to bring to a team if I ever wanted to change education.  I wanted software development to be my skill.

 

Summer with Alight

I worked alongside two others on the back-end of the site throughout the summer.  Unlike the spring, we were actually making progress, but things still moved terribly slow.  At the end of the summer, we only had most of a functional first-pass at a prototype.  I was personally excited by my own growth in software development skills over the summer, but I knew I had a long way to go.

 

Junior year at Olin

That first semester back to Olin was a lot of work, but I found it deeply satisfying and continued to notice tangible growth.  At this point, I still worked on Alight Learning in spare time during the weekends, and although progress was limited for the team, I was still very driven to be a better programmer in order to further Alight.  Thus, I continued on my year of software with two more intense programming classes for the spring: mobile application development (designing and programming Android apps), and six topics in computing (a Java-heavy class about design patterns, programming language design, and other random topics).  Since both classes were based mostly in Java, I finally had an opportunity to develop some proficiency in a single language.  The final project for the mobile development (mob-dev) class was a music discovery app called "Slice."  This intense team project took off at the same time as internal issues were shutting down Alight, allowing me to devote my full attention to the project.  I learned a lot about web-based APIs, data structures, and actually releasing a product onto the mobile marketplace while working on a team with a high level of development experience.

 

Summer at IBM

On the final days of school, I landed a job at IBM.  The original offer promised a programming job with the new Lotus Connections project, but due to internal funding changes, I was added to a larger summer intern program.  My first reaction was disappointment.  However, the program turned out to be awesome: after a couple weeks of ramp-up and group discussions, we spent the last 7 weeks in teams of 2-3 and paired with 3-4 IBM employees who served as project mentors.  Our goal for the summer was to pitch a new product idea or feature to the executive team at the end of the summer.  Each week, we did a run-through of our final presentation to an increasingly higher-ranking set of employees, and through an iterative process, our ideas and pitches got better each week.  Alongside the pitch was the development of a software demo, the programming side of the internship that consumed about 70% of our work time.  After the year of Alight programming and software coursework, I actually felt confident jumping into a large, complex code-base.  The daily mentorship and weekly external feedback was very powerful in keeping me motivated, on task, and learning new things.

 

Senior year at Olin

After completing my initial goal of a year of software, my senior year was more balanced.  However, I still had the equivalent of 6-8 credits of software-heavy coursework each semester as I continued to improve my skills and build my confidence.  First semester, I took a theoretical computer science class, the "everything that other CS schools teach you that Olin skips" course, which I found helpful as I started working on actual data processing algorithms.  My probability/statistics course, also that semester, was taught using the Python language so we could do a variety of custom-built tests on huge public data sets.

 

Second semester, my senior project (SCOPE) team needed to build out a prototype we designed.  I took the programming lead and built a working model in Javascript.  I also worked on a team project for a game design class using Game Maker's scripting language.  Knowing that I wouldn't have any official projects or jobs in software in the next year, I made it a priority to do as programming as possible as the semester ended so I could graduate as a versatile, confident programmer.

 

 

 

Comments (0)

You don't have permission to comment on this page.