I added a lot of complexity to my first Ruby CLI project. It is a CLI called medit that takes in the symbol and fiscal year for stocks and returns the solvency, liquidity, Operating Margin (past 12 mo), and Profit margin aka "The four pillars" of a company's financial health. In retrospect, I would dilute it more if it saved me the headache of thinking of the deadline instead of thinking more of the concepts involved with the project. My cohort lead definitely warned me but I was passionate and determined to build this idea. Here is my advice to myself if I could go back in time:
1.) If you’re looking for the best understandings of the concepts learned in the labs the best method to set you up for success for the CLI project is to start the project early and look for APIs as soon as you get to the work with APIs lab. The startup that I’m working on during the week is occupying the majority of my time and I learned, even more, the value of planning a schedule for the components that you will have to build/test in your project. It definitely helped in completing this project!
2.) Make sure you connect with your cohort lead on ANY gaps of the understanding you might have and pair program as much as possible if you don’t understand even the fundamentals like how to read the API documentation for the API of choice. This gives you the creative space to build with efficient code and I just want to stress again you are not alone! You should work at your own pace but don’t let that affect your ability to complete the project and meet the deadline.
The change of pace of the labs really surprised me and I didn’t have that same instant gratification of running the test using learn —f-f
, the CLI definitely challenged me to know relationships between classes, knowing what hashes to iterate on, and how to access variables within the raw API and was intimidating to look at a blank editor at first. I was able to overcome this paralyzed feeling by flowcharting first
(3.) I recommend NOT to spend a lot of time and if you are you need to simplify your idea to meet the deadline of your project) and writing decent pseudocode.
To highlight some small wins, what I did do right was:
1.) Re-read through the previous labs for areas in Ruby I was struggling with
2.) watch youtube videos on best practices for getting my bundler setup as well as research how to use case statements vs if/else statements
3.) Connect with my cohort instructor and other students for working through problems whenever I got stuck. Also to google, google, and more google errors to work my way backward figuring out problems.
4.) Thoroughly read through API documentation so that I understand the parameters that I am passing in
5.) Took notes on what I will still improve on.
I'm happy with what I was able to deliver and I like to think of my CLI as a tool. I'm really looking forward to building endpoints in Ruby next!
Top comments (0)