Building something from scratch, Week 6
The second week of the “Building something from scratch” phase is over, and a lot of more technical, firsthand knowledge and experience was acquired throughout.
After sorting out the negotiations with our client last week, defining deadlines, scopes for each week and expectations to be met, the real work began: developing the app and being accountable. I’d like to divide this experience in both an individual and a team perspective.
In the teamwork department, I’d like to say everything run as smoothly as it possibly could have, especially considering our lack of experience. It wasn’t perfect by any stretch of the imagination: knowing where to start was tough, diving tasks was hard, making sure everyone had the same idea of what and how things were supposed to be done was a challenge, coordinating ourselves, reviewing and testing our code; it was hard, but even if it wasn’t a smooth sailing, we managed to complete the goals we set for ourselves this week. I believe this was a good introduction week for us, as we made decent progress and were able to improve our teamwork and cohesiveness as a whole.
On the individual side, I must say this was quite a hard week, as I struggled way more than I expected with both the technology stack (especially React), as well as with understanding the legacy code that we are working on. I also would like to admit that some imposter syndrome definitely creeped in for me this week, since I felt a bit out of place being the only non-CS backgrounded person in my team; seeing my teammates not struggle nearly as much as I did certainly trigger some panic alarms along the week. By the end of the week, I was able to push through, and with the help of both my team and mentors, I was able to finish my assigned tasks. While I understand this is a learning experience and this kind of rut or setback is to be expected when learning something new, I also would like to not get complacent and garner that pressure in my favor, as I really don’t want to fall behind or, even worse, be a drag upon my team.
That was what I learned experience-wise. On the more theoretical level, I’ve been enjoying reading the series of books You don’t know JS, which are very interesting theory wise, and as someone who doesn’t really understand the underlying inner working of the language (and who is awfully scared of flunking an interview because of this), this books are coming out as a great source of JS trivia. I’ll try to read one book each week, and I’ll keep some notes of what I’ve learned here. This week’s notes are:
- The operation typeof is bugged for data of type null. This Is a known bug, but isn’t fixed sice it would instantly crash many systems around the web.
- Not formally declared variables are passed to the global scope, which is a really bad practice.
- The difference between let and var is that the former’s scope is a block delimited by
{ … }
, while the latter’s scope is the function. - Immediately Invoked Function Expressions (IIFEs): functions that are executed alongside their declaration. To make a function an IIFE, wrap it in
(function IIFE(){ .. }) ();
- Closures are a way to bundle a state within a function (save data for a given function).
- JavaScript is an interpreted language, however the engine that runs it pre-compiles the code for performance.
- The
eval
function allows us to interpret a string as code and execute it, however its use is extremely frowned upon, as it hinders performance greatly and has little practical use aside from really technical applications.
Lastly, this week I saw a couple of the lectures that were assigned for this month. These lectures touched on the topic on antifragility, which refers to those things that improve when broken (such as muscles, feedback loops, or even human behavior). While at first, I struggled a bit to connect the message of these lectures with the general topic around this phase, I think the takeaway from this is that even when we fail, we should take these failures as opportunities to grow and learn from our mistakes, to be better prepared next time and not fall in the same traps, as well as expecting the unexpected (Black Swan scenarios) and not getting too comfortable with what we feel is secure. Life is uncertain, after all.