Skip to main content

A Crash Course in Crash Courses

I want to take a few minutes to write about the way my skills have built over the course of working on SOTU-db and the iterative process of creating the project as an interaction between ideas and constraints.

Originally, my vision for SOTU-db was enormous - I wanted to basically make a Voyant Tools for State of the Union addresses. Don't ask me where I got the idea that I could single-handedly create the equivalent of a mature product built by a team with far more expertise than I had. Kind of like the goal "build a tic tac toe game," it sounded simple until I begin to create it and realize all of the special cases and interactions that I would need to include in the program.

There has been a constant back-and-forth between my ideas, which are mostly goal-oriented, and the realities and constraints of the programming languages I'm using and my abilities with them. The process of just building out the front webpage meant learning some more CSS and figuring out the rules of W3.CSS. Then, I realized I would need to add some JavaScript in order to get things like file viewers and interactions working. That unlocked some new ideas, like the filter list view and the master index Excel sheet, but eventually I needed some way for the server to "listen" for users to interact with a HTML "get" request, and that led me to playing with piping inputs and outputs via the command line (hey, with the right syntax, I could generate whole HTML documents through the command line). 

After spending some time in the reality of the command line, I realized I was never going to hit my milestones spending so much time fine-tuning the syntax of long terminal commands. At this point I'm realizing that SQL is my solution for the "database itself" and PHP is my solution for receiving user inputs and generating the output to send back to the user. I have basically given myself part of an evening to learn both SQL and PHP and use them to make a functional web app! 

this, maybe?

Although I wouldn't say I'm an HTML expert, using it to build a functional web page gives me enough confidence to at least say I could learn and apply new techniques with it pretty quickly. Same with CSS, and I'm getting near that point with JavaScript. R is probably still the most confusing tool I work with for me. 

I know I won't be a SQL or PHP expert after this semester, but at least saying I've used them on live projects and being able to point to how I've implemented them and what they are for is a great step for me. Even though I have spent more time doing formal lessons on Python (25% of a CodeAcademy class) than JavaScript (no formal classes), I feel better about JavaScript if someone made me choose one for my next project, because I've actually made something with it and put it to use toward a goal.

That's been part of the interesting experience of being in this COMP-330 Software Engineering class. I totally see the value of doing UML diagrams (I wish that's something I'd actually learned in one of my CS classes at Loyola, instead of just always being referred to) and figuring out structure before you start coding. I just don't have the understanding of how these languages work in order to make those diagrams, and still rely on a lot of trial and error to get things working. I'll consider it a big success when I get to the point where I can diagram out a program's classes and functions before starting and have confidence that I can mostly implement what I've diagrammed in code. 

I received an email earlier today from my local pizza-vending establishment advising me that today is calzone day, so now seems like a good time to head home, order up a calzone, and get to learnin' PHP!


Comments

Popular posts from this blog

Setting up an RStudio Server

I'm taking a break from React Native (our group decided not to use it for the Tic Tac Toe project) and wanted to put some thoughts in here about setting up my RStudio server for my SOTU-db project.

I won't get into the details of why I want the RStudio server here - that will be covered on the SOTU-db dev blog. Here, I just want to record some quick thoughts and problems that arose as I set up the server.  Gaining access to the server The server itself is a VM provided by Loyola University Chicago's Computer Science Department - thanks to George Thiruvathukal and Miao Ye for setting me up with this and providing support. 
I initially ran into issues because I couldn't figure out how to connect to the server. I knew I had been assigned a static IP and a DNS entry in Loyola's nameservers at sotu-db.cs.luc.edu, and assumed I would use SSH to connect to the server (which I further assumed was running Ubuntu in accordance with CS departmental policy and my previous expe…

New Position with Chicago Metro History Fair

I'm excited to have begun a new position at the Chicago History Museum a couple of weeks ago now. I am a "History Fair Program Specialist," meaning I help run the Chicago Metro History Fair.

The Chicago Metro History Fair (CMHF) is an annual, regional competition where middle and high school students in and around Chicago research a historical topic of their choice and create projects (exhibit boards, websites, documentaries...) that show off their hard work. Volunteer judges from around the community help provide feedback on the students' work, and winning entries can advance to state and national level competitions (administered by Illinois History Day and National History Day, respectively).

So far, my work has primarily been in preparing for weekend "Palooza" events, where volunteer coaches (often history teachers, faculty, graduate students, etc) and librarians assist students with their History Fair projects. The regional competition will take place i…

More tic tac node

Well I am feeling pretty good about my progress with React Native, but haven't done any more coding in the last couple of days. I just re-opened the project again today and thought I'd blog about some of my as-yet unsolved challenges!

I like loops Things with declaring and initializing variables are really different than what I'm used to. In Processing and Python, global variables can be declared and re-declared wherever, and the draw loop will "pick up" those changes and return the desired results. For example, in Processing, I could initialize the integer "y" to 5 with int y = 5; then inside the draw loop, call println(y); to repeatedly print "5" to the console. If I then call a function that just does y=7; the console will start printing "7" repeatedly, since it recognizes the new value of y.

I used this a lot to build setter functions, for example initializing all the entries in the squareStates array in Tic-Tac-Tohmygod (my Proc…