On Learning, Studying, Memorizing, IDE's and Tracking and other "Tools" for the journey of fCC

On Learning, Studying, Memorizing, IDE's and Tracking and other "Tools" for the journey of fCC
0

#1

I have taken two months out to find the best of the best resources on the above topics. I have learned in 46 years and one career in which I excelled, that it is always good to have a good foundation and being my age with some other challenges other than time, concerning my health, I want to do thing as optimally as possible and for the long-term.

I do freeCodeCamp curriculum, and Open Source Society University Computer Science Curriculum (https://github.com/open-source-society/computer-science#introduction-to-computer-science) at this stage.

The languages that I want to focus on will be CSS3 and HTML5, JavaScript and the different frameworks in the fCC curriculum and secondary, in order of importance, C++, Java, C# and GO.

The reason I decided to do more than the fCC curriculum is that I read two books that influenced my choices and I can highly recommend:

97 Things Every Programmer Should Know: Collective Wisdom from the Experts

The Pragmatic Programmer: From Journeyman to Master

My goal is to be not only a web programmer but a programmer and later on a Software Architect.

I also do not end up in the position where the web development market is going slow and I do not have other programming skills to utilize in another sector.

My Computer Science studies is done for the reason to be able to do the chunked up mindset and to be able to be able to learn the algorithms, architecture, math, patterns, processes, principles and systems (as in thinking) to create and design great software.

GO language was selected as it is one of the emerging languages for instance and C++ because it is versatile, C# and Java because they are similar and widely used for many use cases.

I also choose to do more than one language in order to not get bored. My time focus is ¾ fCC and ¼ the rest of the material discussed above.

I am essentially creating a new career and obviously the main specialization in terms of languages will be done as I find my fit in the environments.

To have balance, I do still do writing, studies in the English Language and writing thereof, philosophy, helping other in as many ways as possible and also increasing general knowledge and personal development in general.

I also do find time to keep my body active and in shape and to meditate I have to, because of a pain syndrome not because I like physical exercise, but I sure like the effects it has on my general health and well-being. Meditation especially keep me in flow, mentally and physically.

On learning I found two of the best books explaining how we learn new skills and also the art of learning to be:
How we learn: http://www.goodreads.com/book/show/19288640-how-we-learn
The Talent Code: https://www.goodreads.com/book/show/5771014-the-talent-code
Both are available as audiobooks so you do not have to read it.
To confirm the theory and studies set forth in both these books you can look at the UCLA Bjork Learning and Forgetting LAB. They confirm through research the optimal methods that have been found recently in terms of learning and retention of knowledge: https://bjorklab.psych.ucla.edu/research/
In terms of remembering syntax of languages and other knowledge a flashcard tool Anki is available for free for most platforms. You can find it here, http://www.ankisrs.net/

In terms of tracking my studies I will be using a combination of Microsoft Excel, Pomello, Rescuetime, Trello and Wakatime.

Excel to keep track of the tasks and time spend on it.

Pomello to time myself per session of study. Please note that you can change the length of a task and also your breaks in the dashboard of the app to suite your individual needs and preferences so it is not set in stone that you need to do 25 minutes, you can play around till you find your optimal times. It can be downloaded here: https://www.pomelloapp.com/. You can also integrate Pomello with Trello to track your tasks created on Trello with Pomello using Pomedoras (a time slice).

Rescuetime is great, it will actually show you the time you spend on the fCC site and also other sites and if you use the pro version you can actually track time away from the computer and together with triggers like Zapier and IFTTT you can do some funky stuff. I however do not have the money to use the services so I will not go that route so there for the use of Excel. You can find it here and you can use it free: https://www.rescuetime.com/ and more on integrations in terms of triggers here: https://zapier.com/help/rescuetime/ and here: https://www.rescuetime.com/integrations/ifttt

Wakatime is a great little tool that will allow you to track your usage/time spent in most programming IDE’s and text editors, Atom, Brackets, WebStorm, Chrome, Sublime Text, Visual Studio Code and Visual Studio 2015, VIM and more, and also on a per language bases, i.e. JavaScript, HTML etc. It has the following features: Automatically tracks when you start and stop working, with detailed metrics per:
project
file
branch
commit
feature
operating system
editor/IDE
language
It integrates into GitHub, GitLab, Bitbucket
NOTE the free version only give a week worth of tracking.

Excel and Trello: I will most probably use Trello (https://trello.com/) with multiple boards to do task tracking but for time planning medium to long term I will still use Excel for now although less sophisticated.

IDE’s and OS’s:
Two factors came into play for me, money and mean time to learn.

Background, I grew up with DOS, Netware and Windows NT and later. I supported the server environments and I know the command-line and registry of Windows well.

I love the open source philosophy and believe Linux open doors for many people who do not have the money for top of the range hardware and software.

That said I do not have the time to learn Linux to the same skill level I have in the Windows environment. I however do have two Linux VM instances(PCLinuxOS (http://www.pclinuxos.com/) and LinuxMint Sarah 18 (https://www.linuxmint.com/ )on VMWare Workstation running on my beast of a PC laptop with 16GB RAM and a 3Mhz CPU.

The reason for the two Linux distribution is simple, one runs systemd as an init system and the other not. It is a discussion for another day. Some tools do run better in Linux and was built for that environment especially in the web development space and I tinker around with it.

In terms of IDE’s I found the following open source packages to be have the most plugins and support for general programming:
Visual Studio Code (https://code.visualstudio.com/ )
Atom (https://atom.io/ )
Visual Studio 2015 Community Edition (https://www.visualstudio.com/products/visual-studio-community-vs )
And one paid:
Sublime Text (https://www.sublimetext.com/ )
Two is supported in both Linux and Windows, Atom and Visual Studio Code.
I settled on Visual Studio 2015 as I do have access to MSDN network and I have worked before in the IDE and it support most of the languages I intend to learn. I also do not care for the memory load as I do not intend to game and do multiple concurrent stuff while coding:
Visual Studio 2015 Professional and Enterprise (https://www.visualstudio.com/products/visual-studio-community-vs )

I will iterate in between the Visual Studio 2015, Visual Studio Code and Atom as I do understand that different development houses will use different tools and these 3 are the main ones used in general for local machine development. I also cannot settle for an online IDE/GUI as I do not have a dependable and fast internet connection. Iterating in between these free will allow me to get to know the quirks of each interface and also the integrations each have with GIT services like GitHub which I use as repository.

All the above mentioned tools have integration packages for GIT.

I will edit and expand this writing as I progress through my learning with sources on for instances REACT and other general “tools”/resources.

I hope this save somebody some time. I will not recommend any method, tools or system as better or the best for a specific usage. I am not connected to any of the organizations mentioned in this writing.

Each tool has strengths and weaknesses and as in each environment there are a lot of zealots that will promise you the “holy grail” of tools.

Do not fall for the rhetoric.

This is my path and way, find your own, create your own Lego Wonderland with the blocks I gave you here, it will authentically yours and beautiful.


#3

I spent a lot of time on languages or the choice thereof. In essence Python, R and Rust are also on the list but I had to make choices.

The fact is and no zealot of the different environments and languages will admit it, is that all of them will have a place in future. It is like Cobol and Natural, still being used to crunch numbers in banking, scientific and revenue/income tax environments.

The system and rules built into them are too big to re-manufacture and so most the web presence and other data are handled by middleware, written in more “modern” languages.

My ex-wife is a Natural Programmer and she makes a ton of money doing that. Supply and demand.

Very few Natural programmers, high demand to maintain, modify and update business rules in those systems. If I had my choice I would have loved to still use Pascal which I did reasonably well in and still have a semblance of but hey, neither Pascal or Delphi survived well.

The only constant like in any environment is change.

So you can try and predict the curve, but that normally fails. In comes the Pragmatic Programmer and I suppose a bit of common sense, know as many languages as possible but more than that learn the underlying principles such as reusable patterns and algorithms, learn basically to “speak” pseudocode and like the pragmatic programmer, think coding solutions in as many environments as possible. You will then find the “tools”, the languages and frameworks to built that solution or invent or reinvent them in your authentic and unique way.

Although you do not see much authenticity and uniqueness these days, simply new wheels with different threads on it claiming to be the “NEW”, “BETTER” wheel though still round. I think that is why everybody has this that notion that STEM subjects (science, technology, engineering and mathematics) will create new realities, however looking back at know history I see that the ability to dream up new realities, being in flow of all things, being curious and playful kind of “create” the new stuff.

Not much maths and logic in that.

For life x.0 I made a decision to not do all the ridiculous stuff I did in life y.0 as I wasted a lot of time in sounding clever and pleasing bosses. Yes, I had the Mercedes, the great house in suburbia, almost had the MBA. Yet I lost myself, gained a lot of wisdom through hardship which taught me a lot. I can now apply life y.0 lessons in a new system, with a different attitude and do it a bit faster than the 10 years it took me in that version of career and life. I also do not do programming to be the next startup billionaire or to become super rich. It is a means to provide a roof over my head and practice an “art”. If I do become super rich, great, if not great.

I do what I do because I do and I love to do it because I love to do it excellently. It could have been a passion to chop wood with an axe excellently, but physically I cannot, it could have been painting, but I do have a passion for that.

Tai Chi and Yoga are a form of meditation, it could be prayer, jumping, with focus, on the bed, as long as it gets you into the flow it is great :slight_smile:. Once again, each has their own path. I personally do the dog walk also each day, she loves it and it does me good to see a different view of the world and to see the life that is happening around me.