WHAT'S NEW?
Loading...
Showing posts with label Programming. Show all posts
Showing posts with label Programming. Show all posts


A lot of people see programming as a very mathematical and logic-oriented field, and while this is true, there is a whole other aspect to it. To be a programmer, you need creativity and ideas. I think it's more important to have perseverance and strong ideas than be good at math or logic.

This year I really started getting into learning actual programming. Previously, I had only been interested in HTML and CSS, which are markup languages. Basically, you code how things look. It does not actually do much of anything. There is no logic or processing. This year, with my computer science course, I've learned Python and am starting to learn Java. There is a huge difference between a markup language and a programming language. Programming languages allow for user input to solve a problem. Solving problems is what programmers do.

When I started learning Python, I loved the problem solving aspect the most. You have to think of creative ways to get around problems with your code. Not every problem has the same solution, and there are multiple ways to get around the same problem. Code is personalized, not robotic.

I started programming a simple Android app earlier this year and had many problems along the way. I wanted something that could be useful in everyday life. When I began, I had no idea what I was doing. I didn't know Java. I didn't know XML. But the ability to learn and Google my problems let me get through making most of my app. Eventually though, I got to a problem that I just couldn't solve. That's when I realized I needed more knowledge of Java. So while I'm currently learning Java, I'm beginning to understand more and more about the language and about programming as a whole. In the end, it's for the user. And I think a good programmer should know that to create a good program, it has to have the user in mind. I think this is why certain software (Linux) doesn't reach mainstream success. It is not focused on the end-user. Design, creativity, and problem solving are the main aspects of a good programmer in my opinion.

I hate math class, and I feel like programming is wrongly equated to mathematics. You do have to have some math knowledge, but the amount of math you use compared to problem solving and creativity is minute. Think of all of the experiences you have had with technology. All of those experiences were made possible by programmers. Your Twitter, YouTube, Facebook. It takes one great idea and perseverance to become a successful programmer.


Yesterday, I attended the hackathon at Iowa BIG as a part of a field trip from my computer science class. Up until yesterday, I had no idea what a hackathon really entailed. I assumed it would be intense and I wouldn't like it, but after going I'm really glad I did and would happily go again.

A hackathon is when a group of developers or other people gather in a space in an attempt to solve problems through coding. It's not as hard as it sounds. The people at Iowa BIG already had some problems for us to solve, such as build an RPG to drive tourism to the community, building an app to help our school keep track of tutorials, or build an interesting project with a Microsoft Kinect. The people there made sure that we chose a project we're passionate about, a problem we want to solve. I chose to redesign a logo and website for a local nonprofit, because I've had experience in web and graphic design in the past.

A major setback I had right away was redesigning the logo. The nonprofit itself had a very outdated logo with clipart, and I planned to completely scrap it and make a new one in Adobe Illustrator. Once I drew up the draft on a whiteboard, I found that the computers we had there did not have Illustrator on them. (GIMP or Inkscape are pretty much unusable for me.) Asking one of the teachers from BIG, I found out that there was indeed a computer downstairs where I could use Illustrator. Making it was a really fun exercise, because I felt like I was actually contributing my design skills for someone else. It's the first time I've ever done something like that. And while I was pressed for time because another group had to use the computer, I got a rough draft done. It could definitely be improved upon, but the coordinators of the hackathon insured us that the goal was not to get a finished product, but to make a dent in the problem.

While I was making the logo, I left my group to the website. Apparently I should not have done that. I don't know if my group felt over their heads or if they simply just went to the hackathon to get out of school, but they made little progress. Taking control, I essentially ended up copying a Bootstrap template and replacing certain text and images with stuff from the nonprofit's website to give it a more updated look. I didn't get all the way through because I felt like my group wasn't doing any work, so I handed the laptop to them and told them to finish it while I relaxed for the last 30 minutes. I'm not exaggerating when I say they did not make any changes or progress at all after that point.

Even though my group wasn't helpful, I would still do it again even if it meant doing it alone. It was fun to practice my web and graphic design skills on something that actually exists, and for another person. I also had various people at the building complement my work on the logo, which was a huge motivator. Plus, free pizza! Who doesn't want that?

The purpose of this post isn't just to talk about my experience, but to let everyone know what a hackathon is like and what it can be. A hackathon will be fun if you're actually planning to contribute, and I did see other groups that worked well together. But if you aren't interested in doing any work, it's not going to be fun. It was a great learning experience to get actual practice and experience in the field of something I hope to do for the rest of my life. Design and coding are extremely fun to me, and if they are to you, I'd encourage you to check one out as well.