LinuxQuestions.org
Review your favorite Linux distribution.
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 01-14-2014, 09:28 AM   #1
Ratmonkey
Member
 
Registered: Jul 2012
Location: Notre Dame, Indiana
Distribution: Fedora, OpenSuse, Ubuntu
Posts: 89

Rep: Reputation: Disabled
Slackware/Programming/n00b


Hey guys, I've been using Slackware quite a bit for the past couple years, and enjoy using it. I also work in IT at a large university, and looking to expand my capabilities within my department. I've worked mostly in customer support, i.e. help desk and desktop support. I have little to no programming/scripting experience. It has always been in the back of my mind and something I'd like to work on learning, and I believe I have some time to do so. I know that there are a number of different environments to program in, but thought since Slackware is a strong interest of mine, that I would focus my efforts towards this. What I am wondering is what my focus should be, and how to get started. I was playing around with www.lynda.com, since work paid for an account for me. The beginner programming course there was for Java Script, and I wasn't all that keen on it.

Can you all tell me what language(s) would be beneficial for me to eventually help with Slackware? Where can I get quality, updated, learning materials (preferably for free)? Any other good information to help be would be appreciated.

Thanks!!
 
Old 01-14-2014, 09:58 AM   #2
NoStressHQ
Member
 
Registered: Apr 2010
Location: Geneva - Switzerland ( Bordeaux - France / Montreal - QC - Canada)
Distribution: Slackware 14.2 - 32/64bit
Posts: 609

Rep: Reputation: 221Reputation: 221Reputation: 221
Start with BASH... And man bash... (The online documentation is good)...

It's still the more useful "language" to learn for an admin.

Then if you want to play you can try to do some more low level programming, Java maybe, C/C++ if you're "angry" .

Cheers.
 
1 members found this post helpful.
Old 01-14-2014, 10:06 AM   #3
Ratmonkey
Member
 
Registered: Jul 2012
Location: Notre Dame, Indiana
Distribution: Fedora, OpenSuse, Ubuntu
Posts: 89

Original Poster
Rep: Reputation: Disabled
So yeah, I've got a bash book already, and I realize it's great for admin work. I haven't actually done anything with it yet, but understand the concept of it. I guess I was looking more for full-out programming. I think C++ might be what I want to go with? Not sure what you mean with regards to "angry?" Anyone have opinions on Java Vs. C++?

Thanks,
 
Old 01-14-2014, 10:17 AM   #4
NoStressHQ
Member
 
Registered: Apr 2010
Location: Geneva - Switzerland ( Bordeaux - France / Montreal - QC - Canada)
Distribution: Slackware 14.2 - 32/64bit
Posts: 609

Rep: Reputation: 221Reputation: 221Reputation: 221
Well in terms of "Opinions on A vs B" you'll end up with a flame war... Each language have it's own utility (DSL - Domain Specific Language)...

Although in my personal job, preferences and skills I'm a heavy C++ developer, I would not recommend you to start with that. Native compiled languages are useful for high performance applications, but don't fool yourself, you won't be able to do those kind of application before... several years of intense programming, so you might more end up with hard to read, poorly written, slow and buggy apps with that.

JAVA might be a better alternative, with Eclipse it's not so hard to get into. But somehow, it's still a huge step, because beside language syntax you should learn Object Oriented Concept which in itself is a heavy task, and requires some XP.

You should try to find out what kind of application you'd like to develop, then it'll be easier to recommend you a starting language.

Also, I develop in native languages (C/C++) since early 90s, and I would not say BASH is not a language, it's still very usefull, look at all the Slackware tools which are developed in shell script (pkgtool, slackpkg, sbopkg) those are "full featured application". Don't underestimate BASH power and possibilities.

Well about "being angry" is a french expression jokingly evoking that you need to be "outrageously motivated" to do it... To ride 20ft waves, or to do skydiving you "need" to be angry ...

Bests

Garry.
 
Old 01-14-2014, 10:20 AM   #5
NeoMetal
Member
 
Registered: Aug 2004
Location: MD
Distribution: Slackware
Posts: 114

Rep: Reputation: 24
Bash /is/ a full programming language albeit it is tailored to also be an interactive shell but you can learn programming basics constructs/logic with it and do a lot if you want to.


C++ is very powerful and C/C++ syntax is very influential so its a good background to have, but its complex and might be very daunting for someone starting out.


Python is also a great flexible choice, and has got a very reasonably digestible syntax, although some of what makes it digestible also makes it different from other languages when you transfer that knowledge, but mostly only in superficial ways.

For the most part if you learn the basics well you can program in any language given enough time and reference material
 
Old 01-14-2014, 10:28 AM   #6
Spect73
Member
 
Registered: Aug 2013
Distribution: Slackware 14.1
Posts: 128

Rep: Reputation: Disabled
Ratmonkey wrote:
Quote:
Hey guys, I've been using Slackware quite a bit for the past couple years, and enjoy using it. I also work in IT at a large university, and looking to expand my capabilities within my department. I've worked mostly in customer support, i.e. help desk and desktop support. I have little to no programming/scripting experience. It has always been in the back of my mind and something I'd like to work on learning, and I believe I have some time to do so.
It is always a good idea to learn what you need most for your job, then branch out. As a guess, I would think that shell programming and awk would be good starters. Perl is also a good scripting language.

Just for fun, I went through all of the 2012 Slackware forum posts, reading almost all of them. I saved most of the questions about scripting just for future reference. One thing I did learn from this was the sheer amount of adminstrative work that is done via shell/awk scripts. Now, as an unrepentant C programmer (hobby only), I will write a C language program just to accomplish what an awk one liner can do. But, nobody is dependent on me getting something done so that they can work. If I were in your shoes, I would probably knock the rust off my shell/awk skills and use those instead.

By the way, if you look at LQ posts on scripting you can learn a whole bunch about problem solving in general, which is something else you will need to learn regardless of what scripting language you chose. Hope this help.
 
Old 01-14-2014, 10:45 AM   #7
EdGr
Member
 
Registered: Dec 2010
Location: California, USA
Distribution: I run my own OS
Posts: 997

Rep: Reputation: 470Reputation: 470Reputation: 470Reputation: 470Reputation: 470
Quote:
Originally Posted by Ratmonkey View Post
So yeah, I've got a bash book already, and I realize it's great for admin work. I haven't actually done anything with it yet, but understand the concept of it. I guess I was looking more for full-out programming. I think C++ might be what I want to go with? Not sure what you mean with regards to "angry?" Anyone have opinions on Java Vs. C++?
Most of the programs included in Slackware are written in C. Some (KDE) are written in C++. These two languages cover the vast majority of the software in Slackware.

It's easy to browse the source code, modify it, and build custom versions. All of the necessary tools are included.
Ed
 
1 members found this post helpful.
Old 01-14-2014, 11:19 AM   #8
Ratmonkey
Member
 
Registered: Jul 2012
Location: Notre Dame, Indiana
Distribution: Fedora, OpenSuse, Ubuntu
Posts: 89

Original Poster
Rep: Reputation: Disabled
Wow, lots of great information guys, I appreciate all of the feedback. Maybe I'll take a look at Bash again? The problem with all of this is I don't necessarily have anything in particular I'd like to build...and infact I'm not all that creative of a person. I tend to be better at looking at something that's broken and finding a fix for it. So for me to just sit down and say, okay I'm going to build xyz program, would be very difficult. If given a direction, and the base materials, I can normally find instructions on my own and fix or build whatever it is I'm working on (in general terms) or find the right people to instruct me. I guess that's why I came to you all.

Bash
C/C++
Java
Perl
Awk
Python

I guess I've got some stuff to think about... if you all have more insight to share, please do so!
 
Old 01-14-2014, 11:54 AM   #9
SavoTU
Member
 
Registered: Apr 2005
Distribution: Slackware64 Current
Posts: 199

Rep: Reputation: 40
I started with perl and wrote bits and bobs to make my life a little simpler, then moved onto python to try and get my head around oop which i now understand and use.

You don't have to think of a massive application to get you going think smaller, if there are any apps with no slackbuilds try writing one in any language, or if there are any tasks you do regularly that could be done in a script its a good starting point.
 
Old 01-14-2014, 12:05 PM   #10
flokofcgulls
Member
 
Registered: Apr 2013
Posts: 79

Rep: Reputation: Disabled
Thought I'd chime in since I come from a similar background, and have transitioned to studying computer science.

Quote:
Originally Posted by Ratmonkey View Post
Can you all tell me what language(s) would be beneficial for me to eventually help with Slackware? Where can I get quality, updated, learning materials (preferably for free)? Any other good information to help be would be appreciated.
This is a question that you'll get a different answer from everyone you ask.

My first programming experience came when I was still working as a PC support specialist. One of my co-workers loaned me a copy of C: How to Program by Harvey Deitel, and I started working through the practice problems in the early chapters. From there I dabbled in other things like Java, but C was what really captured my mind, both in its history and functionality.

I eventually picked up a copy of K&R C, and started working through that, one little piece at a time. Sometimes I'd write a simple program over and over again, just to make sure I understood every little piece of it. One of the biggest challenges is trying to understand what's happening with something you can't touch or physically inspect, and there are many subtle surprises that I think even professionals tend to overlook.

I'm now happily working through an undergraduate computer science program, which has given me a much stronger foundation in non-programming topics such as discrete mathematics, which are important to truly master the craft.

You'll receive advice on numerous languages which are supposedly "best" for beginners, but the truth is that the language is just a tool. It's like telling someone who wants to learn carpentry that they should use this hammer over that hammer.

I would recommend finding a language that really speaks to you, that you feel good about, and work with that for a while. Learn not only the language itself, but read about the people that created it, and why they did so. Read about the struggles they went through to bring us a particular tool. One of these stories is bound to stick out in your mind, and having an emotional investment may help you to remain persistent through the difficult times.

Since you are using Slackware, you already have all the tools you need to get started. I personally use EMACS as my editor, and the GNU family of compilers, but you can easily get Eclipse or some other IDE from Slackbuilds if you prefer.

One last piece of advice, is don't take the basics for granted. It's tempting to skim over something that you've already learned, but take the time to look through it again. I can't count how many times I've discovered yet another small detail of something that I thought I had already figured out. These little details add up after a while.

Good luck in your learning process, I hope you enjoy it as much as I am. =)
 
1 members found this post helpful.
Old 01-14-2014, 12:20 PM   #11
neymac
Member
 
Registered: May 2009
Distribution: Slackware64-14.1
Posts: 138

Rep: Reputation: 19
A good way to learn C++ is using Qt Creator, there are many tutorial and examples of applications:

http://qt-project.org/wiki/Category:Tools::QtCreator

and you can download and install the latest version (3.0.0 and Qt-5.2.0) in /opt folder, keeping your installed Qt version unchanged:

http://qt-project.org/downloads

Last edited by neymac; 01-14-2014 at 12:23 PM.
 
Old 01-14-2014, 02:47 PM   #12
jprzybylski
Member
 
Registered: Apr 2011
Location: Canada
Distribution: Slackware
Posts: 99

Rep: Reputation: 23
I was in the same boat as you a couple years ago. When I started looking at programming, there were a thousand opinions of where to begin. I started with python - and I feel it's still a good language for cutting your teeth with. An older programmer told me to spend time in AWK and Lisp, if only to learn the philosophies behind both. I'm learning C now, and I'm a bit glad I waited too, because it's a language that's pretty close to the metal of the machine, and it's pretty unforgiving. Now we use Java in my university classes.

I guess if I had to give advice, it would be:
1. Don't start in C. Learn C eventually - many programs are written in the language, and besides that it's a powerful language. But it has many concepts that are perhaps a little distracting for beginning. Memory management is important, but it's also largely done automatically in other languages, giving you time to think more about things like data structures, concurrency, etc.

2. Don't just use one. There is no "one true way" of programming, and every language embodies some sort of new paradigm. I was suggested AWK and Lisp because AWK is a data-oriented language and Lisp is a functional language (and many other things). They give you new perspectives that make you a better programmer for the rest of your life, even if you never use the language again.

3. Read about programming. This is probably the most important thing. Before I began programming, I read many, many, many documents first. Humility is your best trait as a beginner - find the hard-earned lessons learned by gurus to make yourself better.

But most importantly, have fun! Life's too short for tedious programming.
 
Old 01-14-2014, 04:46 PM   #13
dugan
LQ Guru
 
Registered: Nov 2003
Location: Canada
Distribution: distro hopper
Posts: 11,219

Rep: Reputation: 5309Reputation: 5309Reputation: 5309Reputation: 5309Reputation: 5309Reputation: 5309Reputation: 5309Reputation: 5309Reputation: 5309Reputation: 5309Reputation: 5309
Slackware's tools, both first party (pkgtool) and third party (sbopkg), are 100% written in BASH.

This is one of the more recent BASH guides: http://linuxcommand.org/tlcl.php
 
Old 01-14-2014, 05:01 PM   #14
metaschima
Senior Member
 
Registered: Dec 2013
Distribution: Slackware
Posts: 1,982

Rep: Reputation: 492Reputation: 492Reputation: 492Reputation: 492Reputation: 492
I would say that bash is probably the most useful language you can learn, especially if you use *nix. Next would be C/C++, but only if you really want to. I mean it's not easy, but if you know bash and C/C++ you can do anything.

The rest of the languages have their place more or less (I won't get into Java and its place). Awk is actually quite useful and easy to use and goes along with bash. You could trade it out for Perl if you needed more power. Python belongs with Java, IMO.

Here are some references:
http://www.grymoire.com/Unix/
http://www.tldp.org/LDP/abs/html/index.html
http://www.catonmat.net/projects/cheat-sheets/
http://www.commandlinefu.com/commands/browse
http://www.regular-expressions.info/

http://www.cplusplus.com/reference/clibrary/
http://www.freeprogrammingresources.com/cppbooks.html

Last edited by metaschima; 01-14-2014 at 05:07 PM.
 
Old 01-16-2014, 07:21 AM   #15
Ratmonkey
Member
 
Registered: Jul 2012
Location: Notre Dame, Indiana
Distribution: Fedora, OpenSuse, Ubuntu
Posts: 89

Original Poster
Rep: Reputation: Disabled
Ok, so lets talk Java quick. I'm contemplating learning that, along with BASH. Good? Bad? Seems well supported,and used on multiple platforms. I have friends who have experience programming in it, and I have access to some Java Programming videos as well. But I want to know how it is in combination with Slack. I'd like to hear from you all why and why not to do it, anyone here have strong experience in Java programming? BASH sounds like a given, and I've got my Bash Cookbook ready to go on my desk and even started reading it yesterday ;-)
 
  


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
Slackware n00b in need of assistance! psearchery13hunter Slackware 22 03-12-2008 07:55 PM
Help a n00b install Slackware 10.2 on SATA harddrive please! asilentmurmur Slackware 5 03-21-2006 03:54 PM
Slackware 10.0 questions -N00b Sader Slackware 2 10-14-2004 07:07 AM
N00b: how do i install a program on slackware? FlinkL.n00b Linux - Software 1 08-26-2004 07:06 AM
slackware firewall (n00b) finchxm Slackware 4 03-04-2004 09:48 AM

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

All times are GMT -5. The time now is 12:05 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