ELI5 on what some programming things are like "cmake", "git, pip, choco", "sudo" - Page 1
Forum section: electronics / beginners

author: renzoms
author_rank: Regular Contributor
timestamp: March 13, 2021, 06:24:07 pm
content: Can you guys help me with an ELI5 on what some programming things are like "cmake", "git, pip, choco", "-sudo", "apt", and I just started downloading Intel's oneAPI toolkit, what's API. I'm looking for general non-technical answers like "well cmake opens up a file from the internet and downloads it"For example, I've used git to pull some things but all of these keywords/commands and acronyms are going over my head.I didn't know there was a difference between UNIX and cmd until today when "ls" wouldn't work in cmd.Afaik a bash is a unix shell and a shell transforms code into commands and bash scripts are files containing commands executed by the shell and this explanation is more technical than I'm looking for.If I didn't mention a common keyword or program/software please describe it super simply, too...Can you guys help me learn what these things are with like "unix is the window where you code", "git installs keywords like get and pull that connect you to github files", "you need (pip/choco/cmake/-sudo) because the cmd window..." "pip/choco are the same they..."Super non-technical, oversimplified explanations of these acronyms and components of programming and software so I can learn!Also I've coded using dynamic structures in c, have many hours and projects and have used git, but right now I've got MINGW64 and cmd open, MINGW64 says cmake not found, but cmd found cmake, and then CMAKE_Fortran_COMPILER popped up so I tried to download fortran from Intel's oneAPI toolkit and now I'm downloading 20 gb of libraries and compilers and I feel helpless and that I'm bottlenecking my programming ability by not knowing what all of this is. To me they are just acronyms that I keep copy and pasting blindly and it's confusing to me.Maybe this can help other people in the future.Posted this on reddit:https://www.reddit.com/r/cprogramming/comments/m4bn8l/can_you_guys_help_me_with_an_eli5_on_what_some/Also where is a good place to ask general questions like this? Because StackOverflow would delete this.

author: rstofer
author_rank: Super Contributor
timestamp: March 13, 2021, 06:51:18 pm
content: Your list of topics is too broad and and generally unrelated. Pip has nothing to do with CMake and so on.Google has all of the answers. It says that CMake is used to parse certain files in directories and subdirectories in order to build Makefiles. If you don't know what 'make' is, CMake isn't going to be much help.The description from Google will be far more comprehensive than I am inclined to type. There are entire books written on just the 'make' utility alone. There are also books on CMake.Pip is the Package Installer for Python. Again, Google has a lot of information. If you play with Python beyond the simply trivial, you will need to install packages like numpy, etc. Python is the hot language for data analytics and Artificial Intelligence and Deep Learning. Like it or hate it, it is THE language to learn (at the moment). Embedded programming and systems programming will be done in C and business programming will probably be done in C++ with PHP and HTML thrown in for web pages. Plan on learning a LOT of languages. I've been using Fortran for 50 years.Cmd isn't a pimple on Unix's <whatever>. Bash and 'sh' are very powerful command line interpreters. In Linux, as with Unix, most of the useful work is done from a terminal using one of the several shells. Again, entire books have been written about each of the shells - several each, actually.People spend their entire career working from the command line. The GUI isn't really much of a development environment compared to the *nix command line. Install Linux on a system and jump in. Or, install the Ubuntu option under Win 10. It isn't entirely crippled but there is no GUI.There is simply too much scope to your question. Pick a single topic and research it until you understand. If it is still above your level, pick a simpler topic. People spend most of their working career just trying to keep up with the technology.

author: renzoms
author_rank: Regular Contributor
timestamp: March 13, 2021, 07:00:02 pm
content: Alright This is great.This is great advice.Question: I thought Linux was a computer type like Windows/Mac. Is Linux like Unix or cmd (these are both shells right).I've got a plan to do exactly what you said. Pick a thing and learn it and move forward. Great idea. I'm moving forward.Fantastic post!

author: rstofer
author_rank: Super Contributor
timestamp: March 13, 2021, 10:44:45 pm
content: Linux is an Operating System as is MacOS, Unix and Windows. The Operating System is the software closest to the actual hardware and makes the hardware useful to the user.Operating systems come in various flavors, some more user oriented than others. RTOSs (Real Time Operating Systems) may not even have a user interface, they simply control some kind of system or device. At most, the user interface might be a few buttons and a display of some kind.The windows command line is one user interface to the underlying PC hardware. It is the most primitive of interfaces. PowerShell is another shell for Windows. It is much more capable but still doesn't come close to the capabilities of the *nix shells. BTW, MacOS is a modified version of Unix.

author: Halcyon
author_rank: Unknown
timestamp: March 14, 2021, 12:53:33 am
content: Refer to duplicate thread:https://www.eevblog.com/forum/programming/eli5-on-what-some-programming-things-are-like-cmake-git-pip-choco-sudo/