[opensuse-programming] Finally start to learn programming
Hi there, I´ve been a Linux user for many years, but I´ve not yet learned to code. I speak some Bash and have good general knowledge about x86 hardware, but that´s all. What would you recommend how to start learn programming? Would you start with a scripting language like Python or Perl or just with C/C++? Automating things or controlling apps with Perl/Python would already be a good thing. What do you say? thanx Malte -- To unsubscribe, e-mail: opensuse-programming+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-programming+owner@opensuse.org
On 26/01/13 03:14, Malte Gell wrote:
I´ve been a Linux user for many years, but I´ve not yet learned to code. I speak some Bash and have good general knowledge about x86 hardware, but that´s all. What would you recommend how to start learn programming? Would you start with a scripting language like Python or Perl or just with C/C++? Automating things or controlling apps with Perl/Python would already be a good thing.
Ruby or Python are good starting languages. Python is probably the easier to get started with, but Ruby is better if you ever want to use object-oriented programming. Perl is excellent for text processing and system interaction, but is a lot less elegant than Python or Ruby. It can be a lot harder to read a Perl program and work out what it’s doing. C++ is excellent for programming where you need both speed and structure. I use it a lot for scientific programming. But C++ is an enormous language. It takes months or years to learn how to use it well, while you can get working Python programs in a matter of hours. C is very fast but it takes a lot of skill to avoid bugs in a C program. -- John D Lamb -- To unsubscribe, e-mail: opensuse-programming+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-programming+owner@opensuse.org
On Sat, 2013-01-26 at 07:22 +0000, John D Lamb wrote:
Ruby or Python are good starting languages. Python is probably the easier to get started with, but Ruby is better if you ever want to use object-oriented programming.
What??? Python is completely object-oriented.
Perl is excellent for text processing and system interaction, but is a lot less elegant than Python or Ruby.
I believe, at this point, Perl offers few if any advantage over other languages. Other languages have all implemented excellent modules for grammar and stream processing.
C++ is excellent for programming where you need both speed and structure. I use it a lot for scientific programming. But C++ is an enormous language. It takes months or years to learn how to use it well, while you can get working Python programs in a matter of hours. C is very fast but it takes a lot of skill to avoid bugs in a C program.
I view C as the Latin of programming languages. Knowing some C can never hurt. C is what is happening anyway, every other language's themselves, system libraries, and OS kernels, are all C. And C error messages and 'problems' will bubble-up to greet you no matter what you use. I've accomplished the infamous Segmentation Fault in PHP, Python, C, C++, and C# - which is something that shouldn't officially happen in any language other than C/C++. -- Adam Tauno Williams GPG D95ED383 Systems Administrator, Python Developer, LPI / NCLA -- To unsubscribe, e-mail: opensuse-programming+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-programming+owner@opensuse.org
Adam Tauno Williams wrote:
I view C as the Latin of programming languages. Knowing some C can never hurt. C is what is happening anyway, every other language's themselves, system libraries, and OS kernels, are all C. And C error messages and 'problems' will bubble-up to greet you no matter what you use.
+1
I've accomplished the infamous Segmentation Fault in PHP, Python, C, C++, and C# - which is something that shouldn't officially happen in any language other than C/C++.
Well, poorly written interpreters do exist. PHP is not one of the best. -- Per Jessen, Zürich (3.6°C) http://www.dns24.ch/ - free DNS hosting, made in Switzerland. -- To unsubscribe, e-mail: opensuse-programming+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-programming+owner@opensuse.org
On 27/01/13 16:43, Adam Tauno Williams wrote:
On Sat, 2013-01-26 at 07:22 +0000, John D Lamb wrote:
Ruby or Python are good starting languages. Python is probably the easier to get started with, but Ruby is better if you ever want to use object-oriented programming.
What??? Python is completely object-oriented.
Not by Ruby standards. In Ruby even integers are objects, and I find pure OO programming is a little easier in Ruby. But OO programming is not the answer to everything. Python and Ruby are both good languages. If I need OO I tend to prefer Ruby. If I don’t I tend to prefer Python. -- John D Lamb -- To unsubscribe, e-mail: opensuse-programming+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-programming+owner@opensuse.org
Malte Gell wrote:
Hi there,
I´ve been a Linux user for many years, but I´ve not yet learned to code. I speak some Bash and have good general knowledge about x86 hardware, but that´s all. What would you recommend how to start learn programming? Would you start with a scripting language like Python or Perl or just with C/C++? Automating things or controlling apps with Perl/Python would already be a good thing.
It's difficult to make good recommendations without knowing your background, your experience, your age and where you want to go with this? -- Per Jessen, Zürich (-1.5°C) http://www.dns24.ch/ - free DNS hosting, made in Switzerland. -- To unsubscribe, e-mail: opensuse-programming+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-programming+owner@opensuse.org
On Sat, 2013-01-26 at 04:14 +0100, Malte Gell wrote:
Hi there, I´ve been a Linux user for many years, but I´ve not yet learned to code. I speak some Bash and have good general knowledge about x86 hardware, but that´s all. What would you recommend how to start learn programming? Would you start with a scripting language like Python or Perl or just with C/C++? Automating things or controlling apps with Perl/Python would already be a good thing. What do you say?
What kind of things interest you? It is much more fun/interesting [and thus you are much more likely to actually do it] to work on problems related to something you actually do or are interested in? Do you want work on an existing Open Source project [and avenue I *STRONGLY* recommend, you'll learn a lot] or do you just want to tinker with your own stuff? Most large projects provide low-barrier-to-entry tasks and bugs. I'd recommend you find one you are interested in and approach it from there. Learn whatever language that this. If you are a GNOME user check out the GNOME Love project https://live.gnome.org/GnomeLove and its mailing list https://mail.gnome.org/mailman/listinfo/gnome-love. They do a lot to help out new contributors. Also http://worldofgnome.org/get-it-started-with-gnome-development/ For my own project I maintain a 'dangling-fruit' list, do bugs that should be pretty simple. <http://sourceforge.net/p/coils/tickets/search/?q=!status%3Aclosed+%26% 26+labels%3Adangling-fruit+> Picking a bug in some project and just trying to figure it out will teach you a LOT. This is a good approach to learning because development is actually about a great deal more that "writing code", in the real-world it is just as much [if not more] about understanding code that has already written and being able to conceptualize how a problem is being approached. Reading a book on Design Patters is a good idea. This is regardless of programming language - everything uses design patterns. And you'll better understand how problems are being solved as well as what experienced developers are talking about [more experienced developers speak in design patterns]. -- Adam Tauno Williams GPG D95ED383 Systems Administrator, Python Developer, LPI / NCLA -- To unsubscribe, e-mail: opensuse-programming+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-programming+owner@opensuse.org
Am Samstag, 26. Januar 2013, 04:14:00 schrieb Malte Gell:
Hi there,
I´ve been a Linux user for many years, but I´ve not yet learned to code. I speak some Bash and have good general knowledge about x86 hardware, but that´s all. What would you recommend how to start learn programming? Would you start with a scripting language like Python or Perl or just with C/C++? Automating things or controlling apps with Perl/Python would already be a good thing.
I'm doing a lot of automation, interfacing and infrastructure glue code with Python, and I still enjoy it. As a possible downside, it happens that you look into some of your code and cannot remember a single line due to the fact that you wrote it ten+ years ago, and didn't need to look into it since then.. (although that code is working every day!). ;-) Even then, Python's language structure and syntax helps you to settle down in a short time. Even PyQt code runs with astonishing stability, although the basic technologies move along all the time (well, apart from Qt3). As Adam pointed out, it might catch you in the transition areas, hence check out the batteries, that are already included, and those that are available, preferably from some stable series. Usually, they're well-tested. Pete -- To unsubscribe, e-mail: opensuse-programming+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-programming+owner@opensuse.org
On Mon, 2013-01-28 at 22:13 +0100, Hans-Peter Jansen wrote:
Am Samstag, 26. Januar 2013, 04:14:00 schrieb Malte Gell:
Hi there, I´ve been a Linux user for many years, but I´ve not yet learned to code. I speak some Bash and have good general knowledge about x86 hardware, but that´s all. What would you recommend how to start learn programming? Would you start with a scripting language like Python or Perl or just with C/C++? Automating things or controlling apps with Perl/Python would already be a good thing. I'm doing a lot of automation, interfacing and infrastructure glue code with Python, and I still enjoy it.
Same here. I do tons of automation and 'glue' jobs. Only I went a slightly different way and meta-solved the problem by porting a workflow engine from Java [a moribund project] to Python. So my automation is done in high-level BPML [Business Process Markup Language]. http://sourceforge.net/projects/coils/
As a possible downside, it happens that you look into some of your code and cannot remember a single line due to the fact that you wrote it ten+ years ago, and didn't need to look into it since then.. (although that code is working every day!). ;-) Even then, Python's language structure and syntax helps you to settle down in a short time.
Avoid 'clever' code, regardless of language. And do not use 'ingenious' language constructs just because your specific language supports them.
Even PyQt code runs with astonishing stability, although the basic technologies move along all the time (well, apart from Qt3).
Agree,
As Adam pointed out, it might catch you in the transition areas, hence check out the batteries, that are already included, and those that are available, preferably from some stable series. Usually, they're well-tested.
-- Adam Tauno Williams GPG D95ED383 Systems Administrator, Python Developer, LPI / NCLA -- To unsubscribe, e-mail: opensuse-programming+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-programming+owner@opensuse.org
On 01/26/2013 04:14 AM, Malte Gell wrote:
Hi there,
I´ve been a Linux user for many years, but I´ve not yet learned to code. I speak some Bash and have good general knowledge about x86 hardware, but that´s all. What would you recommend how to start learn programming? Would you start with a scripting language like Python or Perl or just with C/C++? Automating things or controlling apps with Perl/Python would already be a good thing.
What do you say?
I guess it is important to understand the concept of problem solving and pattern recognition and the choice of language comes second in my opinion. One good place to look at is http://www.htdp.org/ How to Design Programs. The language used is Racket http://www.racket-lang.org/ and you can find the latest racket version at devel:languages:misc repos -- To unsubscribe, e-mail: opensuse-programming+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-programming+owner@opensuse.org
On Tue, Feb 5, 2013 at 7:52 PM, Togan Muftuoglu
On 01/26/2013 04:14 AM, Malte Gell wrote:
Hi there,
I´ve been a Linux user for many years, but I´ve not yet learned to code. I speak some Bash and have good general knowledge about x86 hardware, but that´s all. What would you recommend how to start learn programming? Would you start with a scripting language like Python or Perl or just with C/C++? Automating things or controlling apps with Perl/Python would already be a good thing.
What do you say?
I guess it is important to understand the concept of problem solving and pattern recognition and the choice of language comes second in my opinion.
One good place to look at is http://www.htdp.org/ How to Design Programs. The language used is Racket http://www.racket-lang.org/ and you can find the latest racket version at devel:languages:misc repos
I will not recomend such functional programming languages like Lisp for beginners. Do not misunderstand me: Lisp will open your mind and will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot... but functional and imperative programming are very different and it can really confuse yourself at beginning. Alex -- To unsubscribe, e-mail: opensuse-programming+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-programming+owner@opensuse.org
On Sat, Jan 26, 2013 at 4:14 AM, Malte Gell
Hi there,
Hi Malte,
I´ve been a Linux user for many years, but I´ve not yet learned to code. I speak some Bash and have good general knowledge about x86 hardware, but that´s all. What would you recommend how to start learn programming? Would you start with a scripting language like Python or Perl or just with C/C++? Automating things or controlling apps with Perl/Python would already be a good thing.
What do you say?
I will recomend you to try Python. It's easy language and it has a lot of frameworks, that make this language very usefull: you can use it as a script language or, for example, for web development (Django and SQLAlchemy), or you can create GUI applications using, for example, Qt library. As a first/second language Python is great, but if you would like to understand how programms works you should look at C. As a result of its age and its use as the language of system programming for Unix/Linux, C has become something of the "lingua franca" of programming. Alex -- To unsubscribe, e-mail: opensuse-programming+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-programming+owner@opensuse.org
participants (7)
-
Adam Tauno Williams
-
Alex Naumov
-
Hans-Peter Jansen
-
John D Lamb
-
Malte Gell
-
Per Jessen
-
Togan Muftuoglu