All About Hackathons and Where to Find Them

Smitha Nagar

If someone were to ask me, “What is the best place to learn coding while having an insane amount of fun?”, I’d say one word: hackathons. Hackathons are an amazing source of knowledge – they usually focus on a competition, but they also have many different workshops on various topics taught by professionals. These workshops are pure gold for learning more about computer science. You can experiment with cool hardware and learn a new programming language, and also learn about business, public speaking, and all those other areas that help make you a well-rounded coder. They’re also a great way to meet new people to network and make those important connections that will come in handy later on in your career. The atmosphere is buzzing with energy (from the coffee and junk food), the people are friendly and excited (also from the coffee and junk food), and overall it’s such an enjoyable experience that you’ll find yourself wishing it would never end.

So what exactly happens at hackathons? Many people get images of someone endlessly staring at a computer screen, typing away, and that definitely does happen. However, it usually happens in groups – hackathons are designed to encourage collaboration. The best ideas are from teams, because two heads (or three, or more) really are better than one. Don’t worry if you don’t know anyone else who’s going or have nobody to team up with! You’ll make plenty of friends during this time, and your Facebook will explode with friend requests. Plus, many hackathons have specific sessions where individuals can meet and bond with other attendees to form groups.

The atmosphere is my favorite thing about these hackathons. Everyone is there for the same reasons as you: coding, learning, and having fun. People are energetic, friendly, and there are usually plenty of events happening on the side that add to the excitement, such as dance competitions, midnight snacks, and board games. Of course, the energy dies down a little after 1:00 or 2:00 am when people focus on their projects (and the procrastinators begin theirs), and the dancing is replaced with intellectual conversation and punctuated by the cries of those who have been debugging for four hours. But the satisfaction in seeing your team’s app work after long hours of coding is priceless. Even if it doesn’t work, knowing that you got so far creating something you wouldn’t have been able to do on your own is definitely worth it.

Team presentations are usually held in the morning of the last day of the hackathon. This is your chance to show the judges what you and your teammates have created and earn the chance to win some amazing prizes! What prizes you can win usually depends on the sponsors or partners of whoever is hosting the hackathon, and they can range from a $20 gift card to a raspberry pi to scholarships worth thousands of dollars! Far more valuable than any of these gifts, however, is the experience you get to take home with you. Some of these memories will last a lifetime.

So, you have your mind set on going to a hackathon! Great! Now you need to find and register for one. There are many open hackathons out there, but just remember to keep in mind the age group each one is geared towards. Some hackathons are geared towards young students (check out HSHacks!) while others are geared towards older programmers and are more adult-themed. Make sure you check that the hackathon you are about to sign up for is suited for you. Once you’ve signed up, remember to keep your ticket with you and bring whatever else is required on the day of registration. Once you’ve done that, you’re all set! Remember to stay safe, have fun, and code like you’ve never before!

working-people-1

Important Skills Every Programmer MUST Have!

Smitha Nagar

At Code Camp, you’re learning all the hard skills you need to become a great programmer. The desire to think, the willingness to learn, and the ability to code are all important ingredients for cooking up your recipe of personal fulfillment. However, there’s always a way to become a better programmer, and it’s important to keep in mind that programmers need to master soft skills as well. Here are some (but not all) essential skills you should try to develop to help you succeed in your computer science career.

  1. Interpersonal skills

Programming isn’t just coding alone in a dark room! Being able to work in a team is one of the most important skills you can have in any job, and computer science is no exception. You’ll always be part of or have a team, and teamwork is essential to making awesome programs and, of course, deadlines. When people work together, they can extract the best aspects of individual ideas to create the best possible program, so make a conscious effort to improve those communication skills.

  1. Presentation skills

1

So you’ve finished your project. Now what? Being able to talk to others about what you’ve done is as important as being able to do something. You may be thinking this sounds rather similar to Skill #1, but there is a fine line between the two: interpersonal skills are used more when doing a school project with classmates. Presentation skills are for giving a speech to the class. You’ll need Skill #2 to talk to investors, fellow employees, or your target audience.

  1. Patience

One word: debugging.

  1. Attention to detail

2

This involves more than just spotting syntax errors in your program. It’s the final touches that bring a project together, and being able to handle your work with finesse will improve it ten-fold. This can be anything from using CSS to make your end result look more visually appealing, to reading into your client’s expression and pinpointing what they’re looking for, to sitting back, closing your eyes, and going over what exactly you feel you need to make your project how you envisioned it to be.

  1. But seriously, Patience

Half of your time as a programmer will probably be spent debugging, and this can get rather stressful and frustrating sometimes. It’s important to be able to take a step back, see the “grand picture” that you’re working towards, and calm yourself down. This will not only help your own health and wellbeing, but will also help you find the source of the bug much faster and get you back to happily coding away in no time.

3

Overall, the main takeaway from this is that your coding ability is a significant, but not the only, factor for developing your potential as a programmer. These other skills that many people often don’t associate with computer scientists are often what make a good programmer great.

How to Think Like a Computer Scientist

Smitha Nagar

Now, I know what you’re thinking. “How can you possibly tell me how to think like a computer scientist?” The whole point of thinking is to come up with your own, original thoughts. And you’re right. I can’t tell you how to think, and I definitely do not want to – people come up with unique ideas because of their individual thought processes. What I can do is explain methods to help you see important connections that you previously could not see.

 

Coding is all about problem solving, and sadly, as I’m sure you all know (I certainly do), the solution is rarely easy to find.  You’re often required to find that one algorithm that never occurred to you right away. I personally don’t like the phrase “think outside the box,” because it has been overused by teachers, professors, employers, and everyone in between. You can’t think outside the box, because that implies that your mind is a box: closed off from its surroundings and unchanging. This is far from the truth, because your mind is constantly adapting to your experiences and environment. Instead, think of your mind as a book filled with pages of connect-the-dots, except the dots aren’t numbered – they’re unlabeled and floating free, and it’s your job to decide how you want to connect the dots. The easy way would be to just connect dots that are next to each other, and end up drawing a snaked line, but this probably isn’t the end picture you’re looking for.

So how do you figure out which dots to connect? How do you find that algorithm that results in the big picture? Here are three simple tips:

  1. Find out what you’re trying to draw.

What exactly are you trying to do? What is the answer you’re trying to find? Too many times enthusiastic coders start right away without thinking about what the end result should be, and they end up coding something slightly (or drastically) different from what they had originally intended to code.

  1. Focus on drawing one line at a time.

Break up the problem into smaller parts that you can think about without getting scared and bursting into tears. (Ok, maybe you won’t do this regardless, but it’s still helpful.) Once you have it all divvied up, it’ll be much easier for you to think about each of the pieces and solve them individually.

  1. Don’t start in the middle of all the dots.

Try to start at one end of the problem, whether that’s the very last or first part. If you can figure out the pattern when there’s only one argument, you can probably build on that to figure it out when there are two.

“Ok, ok,” you’re probably thinking. “But seriously, how do I think like a computer scientist?” You already are! You’re fully equipped with your enthusiasm to code and your book of connect-the-dots. Now all you need to do is apply those three tips and you’ll be solving problems like a pro. Try thinking about those three methods when you look at this puzzle. Can you think through the problem like a computer scientist?

problem