Recounting of the week's events during bootcamp
The first week went really well! The work was not overwhelming and I think everyone got to be relativelycomfortable around one another. I feel that is really important to the learning process, and I believe it will make the process smoother.
The nagging question I had, which came on Sunday as I was completely revamping my blog site, was how can I get text to responsively center and resize over an image. With the help of some Google-fu and em's, positioning and transform properties, I was able to find my answer. During that process I had a bit of an aha! moment; I feel like I much better understand the CSS grid system and the role it plays in RWD. I also found CSS media queries to be really useful. In solving my problem, I came upon a pretty cool blog/help site in the css-tricks site.
Week two was definitely a step up in difficulty from the first week. It brought about some discomfort and doubt, but these feelings can be useful as long as they are channeled in the right direction. Instruction was great and I especially appreciated the one on one discussion with Justin and Ian, which brought about some needed perspective and induced a realization... that mistakes have to be made in order to get better at this. I've worked for a long time in an industry that punishes your ego and your pocket book if you make mistakes; while mistakes are understandable and happen, you never want to make them and don't want to get comfortable with making them. I found out I have to move away from that mentality in order to grow as a developer. That will be one of the hardest parts of the next twelve weeks.
My aha! moments this week weren't earth shattering per se, just reinforcements of previously touched upon subjects. Especially in the realm of pseudo code. I was really close to solving a couple morning Hacker rank warmups and actually felt the planning beforehand helped make it easier. I believed in the power of planning the code before, but I had yet to experience that personally. This planning process helped me in the to-do list exercise, which was my favorite of the week. This exercise is the first one where I feel a lot of the progress I made came from myself, and not utilizing code from around the web.
I spent a couple days this week feeling fairly discouraged. It wasn't until our one on one meetings that I began to feel better about the path my learning seems to be taking - one that is more of a slow burn. I don't seem to pick things up quickly, but I don't seem to struggle too much either. I guess the thoughts have to marinate a while before I can piece everything together. I suppose my aha! moment this week revolves around realizing that the process of learning software development is different for everyone. The vastness of development is cool in that it speaks to those differences and means even beginners may have something useful to share, making the learning process is more dynamic and inclusive.
We've been learning and using Vue.js for a couple of weeks now. While no specific ideas come immediately to mind, it's apparent that the utility Vue.js provides developers is found in it's ability to organize and compartmentalize even the most robust of projects. Vue is yet another one of those things that I've only just scratched the surface of understanding, and one I hope to have the opportunity to continue to use. Something else that has crossed my mind recently is the need for developers to be defensive-minded in their coding practices. That being said, I think it is worth checking out a security analyzer to help mitigate risks. One of the more well known security platforms comes from Snyk, a name known to the likes of Google, Salesforce, Microsoft and other tech giants.
Exiting week 5 I feel significantly more knowledgebale on development and the full stack. I'm beginning to see more and more how everything comes together, end-to-end, to make a web application. It's a relief, because at times it felt like I'd be reeling forever and not really come to any meaningful understanding, at least enough to be an effective developer. I know the learning process doesn't end, but now I also know it is possible to get to a place where my skill set is good enough to be a useful part of a development team.
Working in a group over the past week or so, working towards a common goal, was a great learning experience. While I think it is common knowledge that communication is one of the bigger, if not the biggest determinants of the caliber of success that a group achieves, it was great to experience that importance first hand in an environment reminiscent of one I will eventually find myself in. The group I was in did a great job of getting our project functioning, but I think some of the pain points could have been more easily overcome with more communication/collaboration, such as utilizing pair programming. Especially since our individual stories were so intertwined with one another, and to an extent reliant on the completion of another's story.
My aha! moment this week came as I solved a Hackerrank using a method I didn't previously know of. It helped reinforce the knowledge that a lot of problems are solved when you take time to think about what it is you are trying to achieve, then researching the methods to achieve them using relevant phrases/words. I feel infinitely more confident in my problem solving capabilities now in week six than I did during the first week; for the last several weeks I've asked myself what the purpose of the morning Hackerrank problems are other than to get into a relevant headspace for the day ahead. Now I understand the repetition of thinking these problems through then attempting to solve them has increased my logical capabilities.
I found another regex website that I hope will help clarify the craziness that they are. Many times when I have seen an elegant and succinct solution to a Hackerrank it has utilized regex. RexEgg seems to have a plethora of useful information, so I hope to be able to siphon some of that info and put it to use in the near future.
Learning PHP has been pleasant. I feel like PHP has more succint ways of solving problems. In the morning Hackerrank exercises I've noticed that PHP seems to have a lot more built in functions and methods. We are redoing the same Hackerranks from before, but in PHP, and some of my solutions have been noticeably shorter. I also noticed there are a lot of $ signs everywhere. I don't know that starting with PHP over JS would have made much of a difference in my progress. I think there are fundamental changes in the thought process as you move from one language to another that help you learn successive languages quicker while improving understanding of prior ones, at least that has been my experience thus far.
We worked on refactoring the exercises and projects from previous weeks with Vue and Laravel. Although I didn't make as much progress as I would have liked, I did start gaining a better understanding of how powerful a JS framework can be once you learn to utilize it to full potential. I used to not like Vue very much before I got a better understanding of how components communicate with one another. Now that I have a deeper understanding of how parent and children components talk with one another, incorporating Vue into future projects doesn't seem as daunting.
My biggest win this week was getting my Tic-Tac-Toe game working. I would like to revisit it at a future point and style it more, as well as account for some fringe scenarios to make it more secure. Not a win per se, but I can feel my knowledge base growing, and can feel myself getting closer to a bigger aha moment. While looking through the numerous libraries available to developers using JS, I came across a library called three.js. This is the type of technology that really gets me excited when I think about creating applications and sites. I would like to incorporate some of the graphics that can be created with three.js or other graphical/visualization libraries into future projects.