FullStack Academy Lessons Learned in Junior Phase

Posted on Posted in Uncategorized

Hello. Welcome to my first blog post. My name is Jason Morris. I am an aspiring Software Developer who is currently in the middle of a coding Bootcamp called Fullstack Academy. The main topics that have been covered:

  • Backend
    • Express.js – A backend JavaScript Framework that is used for routing
    • Sequelize – A JavaScript library used for interfacing with SQL databases
  • Frontend
    • React – A JavaScript library that utilizes reusable UI components
    • Redux – A library that allows users to hold state in store globally

Back-End

My favorite part was learning the backend. Because I had never learned SQL, I always wanted to know how the backend of a website was made. What were databases? Even though I had used API’s before, I always wanted to know how they were built. Now I know! In our curriculum, we learned how to create databases using PostgreSQL, we learned how to query databases using simple SQL commands, and we learned how to set up routing with Express and Sequelize to get data from the databases. I always wondered how a particular API was able to give you specific dynamic data based on the URL you typed in. For example, when you type in: www.FakeSportsAPI.com/nfl/2018/scoreboard I might get the scores of all of the games for the 2018 NFL season in json format. But if you type in www.FakeSportsAPI.com/nfl/2018/scoreboard?fordate=20181209&team=CHI then you can get the score of the bears game for December 9 in json format. It seemed very interesting to me. How did that work? Now I know you can set up routes using Express that run specific SQL requests (using Sequelize) to get data from the database based on the URL that you type in. That’s really cool!

Front-End

Learning the front-end of the web development lifecycle involved learning both React and Redux. I have done front-end development before using Java for an Android application, HTML, CSS, and JavaScript for a website, a Python desktop application, and WordPress to build this website. But I had never learned React. React is probably the most important thing that we learn in FullStack. Now since I am still a novice at web development, I could be wrong on this but this is how I think of React:

HTML is a markup language. Not a programming language. So you can’t reuse the same code without rewriting your HTML in different places. React tries to fix this problem. React is a cool tool that gives users the power to create reusable UI components. This gets rid of a lot of the redundancy that’s involved in developing websites in just HTML and CSS.

One cool thing you can do with react is set the state in the constructor of your UI component. State can change, which means the components will also change. Sometimes you want access to state from different components. This can be tricky at times when lots of components are connected in different ways. That is where Redux comes in. Redux gives you the power to build a store that any component has access to. This store holds the state of different components. Even though I know and understand Redux, I still don’t fully know and understant React-Redux. This is something I plan to work on and understand in the next week or so.

Miscellaneous Thoughts

There are a lot of things I think about when it comes to technology.

Cross-Platform Applications

Will there still be a benefit to creating applications on their native Operating System in the future? For example, if someone wants to create an application that everyone can use, will there still be any benefit to create that application for Android, iOS, Windows, Mac, and Linux? Or will we ever get to a point where the user can just create the application to work cross-platform. I know there are applications you can use such as Xamarin and React Native to do this, but it is still not ideal (from my understanding).

Converging to Linux

Will we ever just agree on one Operating System? There are major pros and cons of all three. So if that is going to happen, it’s probably not in the near future. I personally enjoy Linux the most. It is open source which I like and much lighter weight and less vulnerable than the Windows Operating System I grew up on. Linux is also free and you can install it on any hardware you like. As opposed to Mac which outlines in the user license agreement that you can’t put their OS on anything that’s not made by Apple. But Linux falls short when it comes to content creation. Adobe Photoshop is not supported on Linux. Neither are most popular video editing softwares such as Sony Vegas, Adobe Premiere, or Apple FinalCut. However, Open Source applications are on the rise. Applications such as KDenLive (for video editing) and Gimp when it comes to photo editing. I honestly have never used them but from my understanding they are still not as good as the applications that are offered on Mac and Windows. If those applications ever do catch up, will there be any benefit to using Windows or Mac as opposed to Linux?

Leave a Reply

Your email address will not be published. Required fields are marked *