LinuxQuestions.org
Share your knowledge at the LQ Wiki.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 04-22-2021, 03:10 PM   #1
pinqvin
LQ Newbie
 
Registered: Dec 2008
Posts: 23

Rep: Reputation: 2
Question Can Slackware help me improve my programming skills?


Hi there,

Last year, I've completely changed lanes switching from the 10th incarnation of the well-known bloated environment called an operating system to Linux, and I regret of wasting so many hours tweaking that thing. But I must also admit that it was that thing that's kindled my interest in almost everything related to computers and programming for them for years. Anyway, I'm currently on PopOS and do enjoy it.

In parallel, I spare at least 1-2 hrs daily to program on C - either through Harvard's CS50 program or learning from books and video tutorials. I'm really into that language!

So, I wonder if I can use the potentials of both Slackware (or similar DIY distros) and C - the native language of Linux - to practice my programming skills while assembling the system. I'm not in a hurry, as I use my notebook for my daily needs, so I can invest some time on this. Plus I'd like to improve my skills to the level I could give back to the FOSS community (a dream for now)...

Thank you!

Last edited by pinqvin; 04-22-2021 at 03:12 PM.
 
Old 04-22-2021, 03:51 PM   #2
EdGr
Member
 
Registered: Dec 2010
Location: California, USA
Distribution: I run my own OS
Posts: 998

Rep: Reputation: 470Reputation: 470Reputation: 470Reputation: 470Reputation: 470
Slackware is a developer environment by default. It comes with all the tools and libraries needed to rebuild itself, and has a high probability of compiling new programs with little or no additional tools and libraries.

That being said, the only way to learn programming is to write programs. That is orthogonal to the choice of distro, but it is easiest to start with a distro intended for development.
Ed

Last edited by EdGr; 04-22-2021 at 03:52 PM.
 
Old 04-22-2021, 04:10 PM   #3
perbh
Member
 
Registered: May 2008
Location: Republic of Texas
Posts: 393

Rep: Reputation: 81
Been a programmer for 30-odd years (fortran, assembly, c).
It mostly depends what/who you are programming for - if you want to 'add' to the linux-suite, that's fine but it doesn't really matter which distro you use.
If you want to do programming for your (potential) employer - again - your choice of distro doesn't really matter. My employer was a Centos-shop, but I used a lot of different distros (slackware, mint, whatever - and yes (chuckles) even Centos).
Basically, what you need is a terminal, editor (vi), compiler(s) and a make-system and the rest doesn't matter one iota - and every distro in sight has it (or you can get it)
Oh and I digress - depending on what you are doing, a source control management system would come in handy - in particular if there are several contributors.

Oh and by-the-way - if you are looking to the future, I do believe I would look at 'rust' rather than 'c'.
I just l-o-v-e 'c' and (to my knowledge - any c I have ever written has never caused a memory fault (like forgetting to free allocated memory on abnormal exits). However, it doesn't mean I can't appreciate newer things surfacing. I am too old to go that route, but for any newbie (which you appear to be) - I would suggest to learn 'rust'
Just my 2c-worth

Last edited by perbh; 04-22-2021 at 04:21 PM.
 
1 members found this post helpful.
Old 04-22-2021, 04:13 PM   #4
tauon
Member
 
Registered: Jun 2020
Distribution: Slackware
Posts: 82

Rep: Reputation: Disabled
Quote:
Originally Posted by pinqvin View Post
Hi there,

In parallel, I spare at least 1-2 hrs daily to program on C - either through Harvard's CS50 program or learning from books and video tutorials. I'm really into that language!

So, I wonder if I can use the potentials of both Slackware (or similar DIY distros) and C - the native language of Linux - to practice my programming skills while assembling the system. I'm not in a hurry, as I use my notebook for my daily needs, so I can invest some time on this. Plus I'd like to improve my skills to the level I could give back to the FOSS community (a dream for now)...

Thank you!
By building any system you don't learn how to program the system, really. You learn how to build it. From my point of view it is more effective to understand how to program a simple interpreter first (so, read SICP, and yes, there is guile in Slackware, which is quite helpful when you read the book), and then Aho-Ullman-Sethi plus a good chunk of flex and bison to learn C (both flex and bison are also available in Slackware).

I wish I did all of that I was a student instead of compiling Gentoo...
 
Old 04-22-2021, 04:16 PM   #5
GazL
LQ Veteran
 
Registered: May 2008
Posts: 6,897

Rep: Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019
Quote:
Originally Posted by perbh View Post
Basically, what you need is a terminal, editor (vi), compiler(s) and a make-system and the rest doesn't matter one iota - and every distro in sight has it (or you can get it)
Heretic! *cough*emacs c-mode*cough*



But, yes, slackware will do just fine.
 
1 members found this post helpful.
Old 04-22-2021, 04:27 PM   #6
perbh
Member
 
Registered: May 2008
Location: Republic of Texas
Posts: 393

Rep: Reputation: 81
Quote:
Originally Posted by GazL View Post
Heretic! *cough*emacs c-mode*cough*



But, yes, slackware will do just fine.
lol - nah, could never be bothered with emacs, but hey - it's what you produce that matters - not HOW you produce it!
I have absolutely zilch/zero problems with emacs, if that's what you want - you use it!
 
Old 04-22-2021, 04:35 PM   #7
LuckyCyborg
Senior Member
 
Registered: Mar 2010
Posts: 3,500

Rep: Reputation: 3308Reputation: 3308Reputation: 3308Reputation: 3308Reputation: 3308Reputation: 3308Reputation: 3308Reputation: 3308Reputation: 3308Reputation: 3308Reputation: 3308
Quote:
Can Slackware help me improve my programming skills?
Probably no operating system can help someone to learn programming. It's all about the owner's brains, not what contains the PC.

BUT, everybody will look at you like at a second Kevin Mitnick when they will hear that your OS of choice is Slackware.
 
4 members found this post helpful.
Old 04-22-2021, 04:45 PM   #8
hitest
Guru
 
Registered: Mar 2004
Location: Canada
Distribution: Void, Debian, Slackware
Posts: 7,342

Rep: Reputation: 3746Reputation: 3746Reputation: 3746Reputation: 3746Reputation: 3746Reputation: 3746Reputation: 3746Reputation: 3746Reputation: 3746Reputation: 3746Reputation: 3746
Quote:
Originally Posted by LuckyCyborg View Post
BUT, everybody will look at you like at a second Kevin Mitnick when they will hear that your OS of choice is Slackware.
Ha! Yes, Slackware has street cred.
Attached Thumbnails
Click image for larger version

Name:	hackerman.jpg
Views:	78
Size:	50.5 KB
ID:	36204  
 
3 members found this post helpful.
Old 04-22-2021, 04:59 PM   #9
brobr
Member
 
Registered: Oct 2003
Location: uk
Distribution: Slackware
Posts: 974

Rep: Reputation: 238Reputation: 238Reputation: 238
FWIW. I once had to do a Java programming course on Windows 98, using a GUI (did I know anything at that time about computers? or editors? Nah, zilch, only used them for making pictures or writing reports). This JBuilder made the computer hang more often than my little calculating program crashed. And in that time, on 98, it was the 4 sec power button press, that determined the work-flow.... (That was more time-wasting than compiling programs when you have something in the end).

Then someone, I think a member in the band I was playing in, told me that on linux one program would not kill or hang the whole lot....
So yes, to do (some) programming brought me, to linux. More because of the stability than because of the learning.. that came a bit later.
 
Old 04-23-2021, 03:25 AM   #10
Martinus2u
Member
 
Registered: Apr 2010
Distribution: Slackware
Posts: 497

Rep: Reputation: 119Reputation: 119
Quote:
Originally Posted by pinqvin View Post
So, I wonder if I can use the potentials of both Slackware (or similar DIY distros) and C
A distro is an OS, an OS bundled with applications. It may support programming environments, but it doesn't require programming as such. Having said that, Unix-related OSs can be configured by shell scripts, which is a turing-complete programming language. But if you create non-trivial software in that arcane environment you're doing it wrong.

If you're looking for an opportunity to practise programming, consider contributing to an existing project (a software that you use and like), or create your own open source project on github or similar.

Regarding C: C is a great language and every software-professional should at least have an inkling how machine code works and how C code relates to machine code. However. If you want to write great software (even in C) you need to get the bigger picture of algorithms and data structures and patterns that you only get by practising higher level languages as well.

To give an example, a single high-level declaration of a "concurrent double-ended priority queue" (and I'm not making this up) can save you hundreds of lines of C-code while at the same time provide mental clarity for the problem at hand.

I haven't even mentioned the complex data type "string".
 
2 members found this post helpful.
Old 04-23-2021, 02:25 PM   #11
perbh
Member
 
Registered: May 2008
Location: Republic of Texas
Posts: 393

Rep: Reputation: 81
Quote:
Originally Posted by Martinus2u View Post
...
I haven't even mentioned the complex data type "string".
(chuckles) Love it!!
 
Old 04-23-2021, 03:43 PM   #12
igadoter
Senior Member
 
Registered: Sep 2006
Location: wroclaw, poland
Distribution: many, primary Slackware
Posts: 2,717
Blog Entries: 1

Rep: Reputation: 625Reputation: 625Reputation: 625Reputation: 625Reputation: 625Reputation: 625
I think you need to be more precise about programming skills.
 
Old 04-23-2021, 07:36 PM   #13
notzed
Member
 
Registered: Dec 2020
Location: South Australia
Distribution: slackware64-current
Posts: 95

Rep: Reputation: Disabled
Slackware is an excellent development system particularly for newbies, with a few caveats.
  • + It comes with a wide selection of up-to-date compilers, interpreters, build tools and libraries.
  • + All of these automatically come with header files so you can use the libraries too (no separate -devel package)
  • + All of these automatically come with all their documentation (no separate -man or -doc or -info packages).
  • - All libraries are 'stripped' of debugging information and there are no debug packages.
  • - Some more complex projects/tools might only track 'some ubuntu LTS' so can be harder to build and install.
  • - For a nascent C programmer valgrind can be a great help but is not included (but can be gotten from slackbuilds)

This is in contrast to debian based systems which don't include most of this by default, and where some of the package names can be hard to determine or they are hidden away in separate repositories (e.g. GNU FDL docs).

C is by far my favourite 'relaxing and fun' language to play with and a good way to lean how computers work. While you can do anything with it certain problems are more easily tackled in other languages - but that is a separate issue from learning. What I particularly enjoy about it is it's simplicity - the syntax quite basic and there's only a small number of keywords and statements to learn and not much boilerplate required to get programming.

The best way to learn is to do it and the best motivator is enjoyment so if you're enjoying C just run with it and see how far you get. Having said that if you can't grok pointers don't get hung up over it.

Quote:
Regarding C: C is a great language and every software-professional should at least have an inkling how machine code works and how C code relates to machine code. However. If you want to write great software (even in C) you need to get the bigger picture of algorithms and data structures and patterns that you only get by practising higher level languages as well.
I find this assertion a little puzzling since data structures and algorithms are how you do anything and everything in C or most other common programming languages and you certainly don't need to use any other 'higher level' language to learn about them. All my data structures and algorithms subjects at uni were in C apart from some introductory stuff in PASCAL (IIRC all other programming subjects for the degree where in C in-fact). And if you don't want to write your own abstract data types (ADTs) there's plenty of production-grade libraries for them in C just like there are in Java or other languages that come bundled with them as part of their platform. But just using an existing library wont help you learn how they work - if that's what you're interested in rather than just using them.

As an aside Java isn't much higher level than C just because it comes with ArrayList, algorithm implementation is still fundamentally based on sub-routines, control-flow, allocation, arithmetic, and assignment. For example the bundled ADT implementations are just written in Java and not a special language feature, cf. Perl's hashes.
 
2 members found this post helpful.
Old 04-24-2021, 06:39 AM   #14
igadoter
Senior Member
 
Registered: Sep 2006
Location: wroclaw, poland
Distribution: many, primary Slackware
Posts: 2,717
Blog Entries: 1

Rep: Reputation: 625Reputation: 625Reputation: 625Reputation: 625Reputation: 625Reputation: 625
Slackware is a distro for people who when running other distros have feeling to wear too tight shoes. One can walk but it is not very comfortable.
 
5 members found this post helpful.
Old 04-24-2021, 09:25 AM   #15
GazL
LQ Veteran
 
Registered: May 2008
Posts: 6,897

Rep: Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019
I like that analogy.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
LXer: How to improve tech skills while contributing to open source projects LXer Syndicated Linux News 0 01-21-2016 12:42 PM
LXer: Jan 2014 IT Skills Watch report: three IT skills on the rise LXer Syndicated Linux News 0 01-22-2014 01:00 PM
LXer: OpenTeacher: Improve Your Foreign Language Vocabulary Skills LXer Syndicated Linux News 0 09-11-2013 11:51 PM
LXer: Improve your singing, piano, guitar skills with Performous LXer Syndicated Linux News 0 03-09-2012 01:30 AM
how do I improve my programming skills babyboss Programming 8 06-22-2006 08:26 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 09:20 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration