On Recently Going to a Hackathon
Recently, I went back to my alma mater on behalf of the company I work for to try to scout some talent. The event we went to was a 27 hour hackathon.
A hackathon is a gathering of people - generally computer scientists, and software developers - in which, teams or individuals work on a specific project for an extended period of time. As mentioned above, this one lasted 27 hours. Some hackathons can go on for days or every weekend for a month. The project can be anything the creative mind can think about. At the end of the hackathon, the teams (or individuals) can submit their project for judging and earn awards. Awards can be in the form of money, prizes, job interviews, or a combo of all.
My purpose (along with my other crew members):
- Help the talent with any questions they may have
- Promote the company I work for as a place they should could consider applying to
- Judge the projects
In the end, about 40 projects were submitted, and these projects were all very impressive especially given the timeframe. Some projects were simple web apps that would function like a brilliant business. Some would leverage cutting edge technologies such as neural networks, natural language processing, and blockchain. Some were a combination of hardware and software (robots). Some were simple games that were designed beautifully. The array of talent at these events is mind-boggling.
I was there once a few years ago. I did one hackathon and a bunch of coding competitions. I used to be fairly good. I used to be that guy looking at the companies sponsoring these events and thinking, "I'll be there one day." Well, here I am.
Reflection on Being Out of School for 2 Years
Sometimes I wonder if I should go back to school. If you have been following me (I won't be offended if you haven't), I've been saying how much I feel like I have weak foundations in my fields of study.
For the first 3.5 years of college, I studied chemistry/biochemistry. But after applying for an introductory course to computer science, I instantly loved it, and wanted to pursue it. The problem was that my family wasn't in a very good financial situation. The longer I stayed at college, the more financial strain I put on myself and them. So, for the next 2 years, I crammed in a math and computer science double major.
I'm a quick study. I picked up enough to be competent at what I do but I always felt like my skill had been dwindling.
Maybe it was the feeling of being overwhelmed about life, maybe it was the lack of confidence but for a while, I didn't really do anything to foster my skillset. That is, until I discovered blockchain.
For those of you who are not up to speed, blockchain is the underlying technology behind Bitcoin, Ethereum, etc. It helps promote a decentralized economy through trust-less cryptographic proof as opposed to the trust based system we have now (we have to "trust" banks and other third party intermediaries).
All of the sudden, I felt this spark that I haven't felt in quite a while. At first, I wondered if it was just the allure of new technology. I'm sure I'm not alone when I say that when a new technology comes out, I want to experiment with it. But this was different. I just wanted to be as knowledgeable as possible in the blockchain space. I found myself trying to read and understand the original whitepapers. I was looking up free courses (distributed systems) to re-up on my current skillset. I found myself delving into crypto-economics and the history of money. I even learned some trading skills. A jack of many trades (and a master of none... yet).
Realizations at the Hackathon
Judging the hackathon made me feel insecure for a bit. I'm standing there listening to freshmen and sophomores talk to me about their neural network project that detects fake news. I kept wondering in between judging projects if I am behind, if I am a dinosaur, if I should give up.
And then I realized:
- This isn't a race; it's a marathon. Sure, I may be out of the gate late. I started the major late, and I didn't really start applying myself until last year. There is a mantra I try to live by: "Don't overestimate what you do in one day. Don't underestimate what you can do in a year." Recently, I started to ramp up my learning. This is what this space is; it's consistent learning. I try to make a little progress everyday. Incrementalism is one of the best ways to make progress.
- I should focus on implementing. I shouldn't overwhelm myself with information overload. There is a lot stuff out there. But what I noticed about the people who succeeded in finish a project focused their time those 27 hours at delivering. I imagine during their breaks, they did explore around and did other things but for the most part, they focused on what their tasks were to make the project a success.
- I should focus more in general. Going back to the previous point, it's sometimes hard, in the internet age, to focus. I bounce around the internet getting into a wormhole and lose track of time and what tasks I have to do.
- I need to be real about my time. Time; the thing we all never have and spend time wanting more of it. This ties into the previous points. There's plenty of time to implement but sometimes I tell myself there is no time because of "how much I have to do." If I used my time as efficiently as possible, I should have many of those, "I need more time" issues.
- I have to put myself out there more. These talent went into the hackathon with an idea, implemented it, and put it out there to be judged. They were open to suggestions, feedback, and criticisms. They wanted to know how to get to the next level. They wanted to know how to push themselves and their projects further.
- I need to stop being a perfectionist. I have a perfectionism problem. A lot of the projects, even though they worked, would need more work to scale or need more work in general but they still submitted. My ego sometimes gets to me. I put it in my head that my project (or my writing) needs to be perfect the first time around. Nothing worthwhile is done perfectly the first time around especially not in computer science. I need to be comfortable with simple trial and error. Sometimes I'm so afraid to not be perfect that I barely even start or just abandon my ideas in the middle.
- I need to be able to be a good improviser. I can try to plan things out as perfectly as possible (see: perfectionism) but rarely do software (and anything) projects go "according to plan." I don't know the future. I can't plan for things I can't see. What I can do is have the ability to pivot.
- I need to be comfortable with "thinking in bets." As I mentioned in the previous point, I won't have all the facts so I need to be able make decisions with what I'm given. If I get "decision-lock", then I will end up getting nothing done.
- I have to accept that I won't be correct all the time. If I made a judgement call, and it didn't pan out, I need to be comfortable with being wrong. I need to do a postmortem of the decision and learn from it. I should be comfortable with owning up to it publicly. I shouldn't be caught making the same error over and over again. If the decision ends up panning out, then I should keep that in my "book of successes" so I know what I can fish out if I face a similar issue again.
- I need to properly assess risk. Most, if not all of life is about proper risk management. The decisions we make all come with its own set of risks. Are those the best risks to take on? What is my risk tolerance? I can't have everything so I need to be able to be comfortable with the something that comes out of risk management.
What I Believe I Have Done Correctly Recently
I think learning about blockchain in the middle of 2016 was a bit of a turning point for me but I shouldn't be doing good habits only because I am passionate about what I am doing. I should be able to do this consistently in all facets of my life.
- So far, I have been more consistent with putting myself out there. I'm not doing it at the frequency I want it to be but I am making progress on that.
- I've long accepted that I will be wrong a lot. I'm fine with putting my ideas/thoughts out there and being utterly wrong.
- I get less decision lock.
- I am less of a perfectionist than I was in college.
- My focus is getting a lot better because I tend to read a lot of books and just use the internet as a tool, not the other way around.
What I Need to Work On
- Consistency. I have to be able to do this day in and day out.
- Perfectionism. I still get decision lock every now and then and it really stunts my progress.
- Implementation. There is a saying that people should be "doers." I think that's a good start but I think we need to be finishers as well. The work is never finished obviously but we need to finish our iterations. If it's an MVP, finish that. We can get into a new iterations after that and finish those.
- Risk Management. More stuff to do, more decisions, need to keep building the framework to properly assess risk.
- Ego. Well, I think many of us have to stunt the ego.
I'm sure there are a lot of things I haven't covered in this brief reflection. As I go along, I will keep adding postmortems and reflections on the many things I will inevitable do. I do hope that this reflection will help some of you find your blinders. We all have them. It's about what we do when we find those blinders. In addition, I hope for those of you that had/have similar feeling to what I had during the hackathon that you feel more at ease.