Start @ the Beginning
I lament the fact that the college I teach programming at does not offer a ‘tooling’ class. I believe that students who choose programming as a vocation would be better served by learning how to code first before they get into what to code. The programming ecosystem is quite large and somewhat diverse, especially in the realm of editors/IDEs. Below, I will outline what seems to work best for me & my students and I will provide pertinent, curated learning materials that will hopefully help you get started and be productive. If you have had better luck along the way with different tools, please feel free to share! Please also be aware that I code in Windows 10, so you will have to modify your downloads for your OS. Please, please don’t just glance at the educational material provided below. Really take the time to learn each tool. I am speaking from the school of hard knocks here as I wasn’t always diligent and I paid the price in frustration later as I would go back and find the answer in the material.
Tools
- IDE: IntelliJ IDEa Ultimate - There are a LOT of editors/IDEs out there (Sublime, Atom, etc.) and the Ultimate edition of IntelliJ is not cheap, but I feel like it is a work of art. With wonderful plugins, support for a lot of bleeding-edge web tech, and a large support pool on the interwebs it is my go-to IDE for all of my programming. Heck, they now even support Perl with a plugin! Learn HERE.
- Editor: Notepad++ - When I need to quick-open/edit a file, this is the tool I turn to. It has plenty of themes & plugins to make you happy and they are now CIA proof.
- Git for Windows - This tool is needed to keep track of the changes you make to your programming files. Learn HERE.
- GitHub Desktop - Additional utility you can use to publish the repositories you create with Git to the web.
- Node.js - This is the engine that web browsers use to compile the JavaScript code that you write for web pages. They ripped it out, souped it up, and provided it for computers to utilize outside the browser!
- Google Chrome - Indispensable web browser because of its support of language features but ESPECIALLY because of its developer tools!
- IntelliJ plugins - At a minimum I recommend these: .ignore, CSS support, EJS, ESLint, Floobits, Git, GitHub, JavaScript, & NodeJS. I also like the Material Theme.
- Global NPM modules - Use NPM to install these globally:
npm install -g PM2, ESLint, JSDoc
- Chrome Application: Web server for Chrome - Really handy for viewing your static web files locally.
- SCSS transpiler Koala - VERY easy SCSS to CSS transpiler (converts SCSS to CSS). I will cover this in a later post.
Integrating Git & Intellij:
- Ensure you have Git installed on your computer (download & install Git for Windows if not using a Mac or Linux box). a. Choose basic start menu (registry-based), and run from windows command prompt.
- Ensure your GitHub account info is set in IntelliJ a. File -> Settings -> Version Control -> GitHub
- After you have your project created and made your initial edits go here: VCS -> Import into Version Control -> Create Git Repository…
- Ensure the root directory of your project is selected and choose OK.
- You will be returned to IntelliJ. In your left pane (project pane) right-click your root directory and choose: Git -> Add.
- Then on the menu bar choose: VCS -> Git -> Commit Directory.
- When the Commit Changes windows pops up, type a message in the “Commit Message” section then choose Commit at the bottom.
- If a Code Analysis window pops up, choose Commit.
- On the menu bar choose: VCS -> Import into Version Control -> Share Project on GitHub.
- When the pop-up appears, type a description and click Share.
Sites
- The PREMIER static learning resource on the whole of the internet (IMHO) is the Mozilla Developer Network (MDN). This should be your default reference.
- StackOverflow - THE site for getting questions answered, but beware: Be sure you’ve exhausted all of your other resources 1st before asking a question here lest you find yourself kicked into a donkey rape-pit of disdain from the elite users of the site.
- HashNode - A more gentle, but less effective question answering site.
- Reddit - r/webdev, r/javascript, r/learnjavascript are all indispensable resources!
Final Thought
It is assumed before you ever dig into any type of programming that you know how to computer. What I mean by that is that you know how to manage your files & folders on your computer. If you do not, here are two resources for Windows users: RESOURCE 1, RESOURCE 2.
That should be WAY more than enough stuff to explore and install to get you up and running so you can start coding!
⬅️ Go back comments powered by Disqus