Bootcamp Takeaways
My experience in ASU's FullStack Development bootcamp has rewired the way I code, and entrenched my love of learning. I will never know everything; rather, I can learn anything. This blog post does not seek to teach coding principles, but to share a few brief examples of the things I learned that are shaping me.
Finding a style: Experimenting with Workflows
Coming from coding as a hobby, my workflow was scattered and dependent upon my level of interest in the project; I could spend 5-10 hours a week, or invest 60 hours in 4 days. There are zillions of workflows for every brain, but I found consistency and success working with agile methodologies. With an iterative approach, I could be responsive to unexpected changes instead of frustrated. Branching off main to experiment with alternate options and new features saves the hurt of breaking working code. I am a perfectionist, so focusing on generating a MVP (minimum viable product) for each project allowed me to use excess time to add my stretch goals. By prioritizing the user & interactions over processes & tools, the processes or logic came naturally.
Well not entirely natural - there was a lot of drawing diagrams and flows, daydreaming of the final product, and thinking through each step from file organization to integrating APIs and more. In my workflow, each file starts with comments of what I am trying to do. As I code, when I think of other features or functionality I would like to add I update my kanban board for the project on GitHub. With columns for every stage of development, it is easy to keep track of how much needs to be done.
Conceptualizing Goals
By thinking through the logic needed to accomplish said goal, I am priming my brain with the concepts needed to code in any language. Just as humans across the globe speak a multitude of languages to convey the human experience, the meaning matters more than the exact syntax or dialect in which one speaks it. By deepening my understanding of programming concepts, I am better prepared to code in any language. Regardless of the syntax, concepts and best practices apply.
Of all the best practices taught, the one I repeatedly use everyday happens to be DRY: Do Not Repeat Yourself. Functions are intended to execute one specific function, so it follows that the code to execute that specific task only needs to appear once. When working with React or other languages/libraries, code reusability saves time, space, and creates a seamless template for rending any kind of data. As my professor taught us, if you have to type the function twice in the project, could it be imported? Additionally, ternary operators and ways of condensing logic from long, drawn out if...else and switch case statements help keep code clean and concise.
Team Communication
With 3 group projects across the 24 weeks of bootcamp, I learned rapidly that communication isn't just important - it will save you hours. From the first group project where tension built up because no one understood each other or their code, to the last where we reached our MVP in 3 days, the night and day difference is a direct product of better group communication. By establishing a communication flow in a groupchat on Slack and repeatedly updating the team on my work, the rest of the team joined in and contributed updates, questions, and resources. As a result, we avoided working on the same features, solved bugs much faster, and were able to go for our stretch goals with 10 days left until the project deadline.
Overall, I am grateful for this opportunity and developing the ability to read code, rather than just assemble it.