Long Term Takeaways:
- test first, test during, test after; test, test, test
- when designing algorithms, demand the weakest capabilities (e.g. iterable vs. indexable)
- when designing containers, provide the strongest capabilities (e.g. indexable vs iterable)
- build decorators on top of containers, iterators, and functions
- utilize the benefits of being lazy (i.e. yield)
- always look for reuse and symmetry in your code
- collaboration is essential to the quality of your code and to your well-being in producing it
- refactor, refactor, refactor
- make your code beautiful
1. How well do you think the course conveyed those takeaways?
Professor Downing is an amazing teacher and did an exceptional job at conveying the general software engineering takeaways. He was patient and explained topics in-depth and made sure that everyone was on the same page. After taking this class, I’ve learned a lot about Python, SQL, and refactoring without having much prior knowledge. Downing’s the G.O.A.T.
2. Were there any other particular takeaways for you?
I liked getting familiar with different web development tools like Docker, React, and AWS to build a data-heavy website. Having no prior experience with web-developed, I came out of the class learning a lot independently while collaborating with my teammates. We filled each other in the areas that we felt comfortable in and overall it was a great experience.
3. How did you feel about cold calling?
I thought cold calling was a great way to make sure that everyone stayed engaged in class, but in the end, I thought we sometimes wasted too much class time going over topics discussed previously. Overall, I think cold calling was a fun experience as I never knew if I was going to get called on which allowed me to focus on class and avoid other distractions.
4. How did you feel about office hours?
To be honest, I never attended any of the office hours as I focused more on learning about web development through the projects than the topics covered in class. I made sure to ask questions in class if I didn’t understand a topic but other than that I didn’t really need to attend office hours. For me, the lab hours were more productive than the office hours.
5. How did you feel about lab sessions?
I thought lab hours were really helpful when my team got stuck on some issue or bug and we couldn’t find any other solution online. The TA’s were very knowledgeable about the projects as they had been through the same process before and guided us in the right direction on the issues. The timings of the office hours worked effectively with my class and meeting schedules making them really convenient to attend.
6. What required tool did you not know and now find very useful?
I did know much about Postman before taking the course, but now I think it's a great tool test for testing your API. At the beginning of the web-development phases, my team and I utilized Postman to test the responses of the external APIs we were planning on using and to organize our research in the workspaces.
7. What’s the most useful Web dev tool that your group used that was not required?
Algolia is definitely the most useful tool that I did not know about before, but after implementing the site-wide search I thought it was really useful. Algolia is a tool that makes the process of implementing site-wide search much easier as you can upload all of your data in JSON format and it takes care of the searching for you! I would definitely recommend checking it out when working on Phase III.
8. How did you feel about your group having to self-teach many, many technologies?
I thought it was a fun experience learning independently and from my teammates. It was more intriguing to research and get some component of the website working rather than learning about it in class and then replicating it. I had the opportunity of working with great teammates as we helped each other through any issues together which made the process of learning much easier.
9. Suggestions for improving the course.
I think the rubric for the different phases of the course needs a rework. There were many instances when we were confused about what was required as the instructions on the rubrics were very vague. Often we had to clarify with our mentor TA every time we would try to implement a feature or component of the website to makes sure we were moving in the right direction in terms of the grading. Overall, I feel like the grading criteria on the rubrics of the projects can be more specific, which would help future students know what is expected of them.
Thanks for reading my blog! If you want to check out the website I worked on visit (if it’s still up) — https://www.culturedfoodies.me/