A Breakable Toy & Lessons Learned
I can’t remember the last time in my life that I had so little free time. I typically like to blog about 2-3 times a week to keep everyone updated on my journey, but also to keep sharp on my own skills through teaching.
With that being said, we have since finished the curriculum portion of the cohort and have moved to and beyond group projects. Our final week of curriculum taught us Rails, which is simply amazing. After week 6, we were broken up into several groups for group projects. We have already finished this part of the cohort, but since I never documented it, I’ll give a brief overview and then come back to it, in greater detail, when time permits.
What is this 2-week period all about? You may think that it’s about building a website from scratch and getting every bell and whistle you can throw in there but you would be wrong – kind of.
Group projects, at Launch, are less about the final result of a project and more about being exposed to a truly collaborative environment. When we all get jobs after this is done, we are going to be working on teams.
When it comes to working on a team, talent should not be the only consideration. I subscribe to the belief, and one backed up by personal experience, that inter-personal skills and solid relationships among team members will undoubtedly make your team’s talent greater than the sum of its parts. It is more about how all of you overcome differences, build each other up and come up with creative ways for solving problems.
Poor group dynamics can cripple the most star-studded group whereas a group of highly motivated, yet novice, developers who genuinely enjoy each other’s company will certainly outpace their counterparts. Boy, that was a mouthful. Let’s move on.
Every group was essentially building the same thing, a review site. Each group could decide exactly how they wanted to fulfill that requirement. One group reviewed color, which I thought was a really unique idea (very abstract!). My group reviewed music venues. Here is a quick list of a few key requirements:
If you want to skip ahead to the final project, head over to venview.herokuapp.com
I loved my team, we had such an amazing dynamic and I attribute that to a few things. First, we all had a solid and mutual vision for what we wanted to accomplish with this project. Second, we were all really honest with each other in our assessment of the skills we each brought to the table.
For instance, I took over for a lot of the design portion of the site because I have a natural aptitude for that. On the other hand, one of my team members felt she needed more practice with design so we paired up for most of the design and I taught her a bunch of stuff. Flipping it around, she taught me a whole lot when it came to implementing React on the front end and the ability to make fetch calls to API endpoints in Rails, something I was completely in the dark before starting this project.
Third, we all kept current on our itinerary each and every day. We kept a ‘diary’ of sorts that simply listed everything we wanted to accomplish each day and who would be doing what. I cannot stress how helpful this was – simply verbalizing our intention was a big help to all of us. Then, at the end of the day we met up once again to review the day’s events. We would cover what was accomplished and what still needed work. Then, we would quickly throw around ideas for what to do the next day, which would then be solidified the following morning.
I learned so much throughout this entire experience. I’ve learned so much since coming to Launch and it has all be fun in one way or another, but these last 2 weeks were certainly the best. I credit this to the fact that we were finally using our skills to build something tangible. We are finally able to really actualize an idea and subsequently share it with others – that is why I am here, to build, collaborate and share.
That brings us to the final 2 weeks of Launch, our Breakable Toys. For my final project I chose to build an app based on an idea I had many years ago. For those that do not already know, I am a musician and I used to offer music lessons for bass. In order to get new students I relied on mediums like word of mouth, flyers and craigslist ads.
I found it difficult to keep track of everything by marketing in this way and thought about how cool it would be if there was a central location for people to meet up and find either students to teach or teachers to learn from. Enter Let’s Jam.
As I said earlier, working on your own project from scratch is an absolute thrill. That being said, this project is kind of bittersweet for me. Why? It’s a long term project, I have a laundry list of functionality that I want to build into this app but I just wont have the time to get it all done in 2 weeks. Instead, I am going to have to make compromises on what to include so that I have something to present to hiring partners on Career Kickoff Day.
Some of the features I ultimately want to include would be:
- Online Chatting (Text & Video for Online Lessons)
- OmniAuth for Google, Facebook & LinkedIn
- Stripe – for payments
- A Blog section for teachers to share quick tips and tricks
- Advanced Design (I really want to Learn D3)
- Entire Front-End in React (maybe Redux)
The list goes on and on. As it stands right now, I am just trying to wrap my head around my database, making sure all my associations are correct. It looks like I will be utilizing Self-Join, but this would likely change as I build out functionality down the line with different types of users.
Working on this breakable toy has a way of crystallizing your strengths and weaknesses. That is to say, I am more aware now, as I work solo, of where I need to improve as a developer. My strengths lie in the front end with a special fondness for design. Moving forward, I want to pay special attention to my understanding of databases and relational mapping. As with most things, I feel this is just a matter of practice and will become second nature in the near future.
To Infinity and Beyond
So, we are almost done week one of solo projects and my stress levels are increasing big time. I will be revisiting this entire past month for further discussion once time permits but I do want to quickly share a few points with you guys.
It is important to design your app as you progress through the building of it but do not get too carried away. Unfortunately I made this mistake. I underestimated the level of complexity involved with getting a backend setup properly. Instead, I just naturally gravitated toward the front end and became insistent on working with React and designing the layout and presence of the application.
The problem with this of course is that if your app doesn’t function, it could be the prettiest app ever but nobody will use it. My advice is to do minimal styling to put you in the general direction of where you want your app to end up upon completion. Having something that looks aesthetically pleasing, if only a little bit, will keep you motivated to continue working on it.
Secondly, keep current with all of your deadlines and do everything you can to mentally prepare for being completely swamped and feeling absolutely overwhelmed. I honestly thought I had my entire app plotted out in my mind – this lead to a false belief that it would relatively easy to build. The truth is, you begin to notice new complex arrangements and edge cases as you move further in the development of your app.
To remedy this, begin plotting out functionality of your potential app. Think about how you want the user to interact with it. What is it at it’s core? When it comes to ER diagrams, Use them. Then use them again and again until you are absolutely clear on how you want you’re backend setup. Do not wing it!
You will have a ridiculous amount of deadlines that need to be completed during this time. You will be writing pitches for prospective employers and you will be demoing screencasts of your project. You will be writing resumes and updating your linkedIn account. You will be busy. Very. Very. Busy. Get ready for it, because if you think you can just skip through without consequences, you are seriously mistaken.