August 27, 2019
On Tuesday, 27 August 2019 at 08:09:40 UTC, Dukc wrote:
> On Sunday, 25 August 2019 at 21:30:10 UTC, GreatSam4sure wrote:
>> [...]
>
> Any general purpose language will do. Basically everything can be expressed in any language, through some tasks are very cumbersome in tasks they are not designed for.
>
> [...]


Thanks a lot, really appreciate
August 27, 2019
On Tuesday, 27 August 2019 at 14:51:07 UTC, Ron Tarrant wrote:
> On Sunday, 25 August 2019 at 21:30:10 UTC, GreatSam4sure wrote:
>> If I want to be a pro programmer what language must I start with?
>
> If it's deep understanding you want, start with assembly language. Knowing how things are done down at that level—before all the layers of abstraction are added—will give you an edge over 99% of current coders.
>
> It's the same with basic computer use. Wanna be a true expert user? Get any version of Linux or one of the BSDs and restrict yourself to using just the terminal for about a month. You'll be amazed at how much you'll learn. It'll also give you a great foundation for understanding coding.
>
> And your typing skills will go through the roof.


Thanks a lot. I want to have a deep understanding of programming. I will look into your advice


August 27, 2019
On Tue, Aug 27, 2019 at 04:01:03PM +0000, GreatSam4sure via Digitalmars-d-learn wrote:
> On Tuesday, 27 August 2019 at 14:51:07 UTC, Ron Tarrant wrote:
> > On Sunday, 25 August 2019 at 21:30:10 UTC, GreatSam4sure wrote:
> > > If I want to be a pro programmer what language must I start with?
> > 
> > If it's deep understanding you want, start with assembly language. Knowing how things are done down at that level—before all the layers of abstraction are added—will give you an edge over 99% of current coders.

To quote Knuth:

	People who are more than casually interested in computers should
	have at least some idea of what the underlying hardware is like.
	Otherwise the programs they write will be pretty weird. -- D.
	Knuth

Learning assembly language will give you an intrinsic understanding of what actually happens at the machine level, which will guide your high-level designs later.

But caveat emptor: you don't want to get stuck in the "rut" of thinking in assembly language, because it can lead to missing the forest for the trees sometimes.  So to balance that, you want to learn also a very high-level language that makes you think on a whole different level: I recommend Haskell or Lisp after you learn assembly language.  They are very different from "mainstream" imperative languages, but they really strip away all the frills and lay bare the essentials of algorithms and computation.  Even if you end up working mainly with an imperative language later, the experience of learning a functional language like Haskell or Lisp will help you think about algorithms in a much clearer and deeper way. You'll be able to identify patterns where others lose their way in details, and your code will be much better structured and maintainable.


> > It's the same with basic computer use. Wanna be a true expert user? Get any version of Linux or one of the BSDs and restrict yourself to using just the terminal for about a month.
[...]

Only a month? :-D  I've been doing exactly this for the last 20 years, and now I don't even dream of using a GUI anymore.  The Unix command line is far more powerful and expressive, and I can get so much more done without wasting time switching my hand between the rodent and the keyboard.  It forces me to learn command-line utilities that don't require ridiculous amounts of RAM and 40 seconds just to start up, and that has accelerated my productivity by orders of magnitude.  On top of that, command-line programs are scriptable, meaning once I know how to use it, I don't ever have to use it again because I'd write a script to do it for me.  No more aneurysm-inducing clicking through endless nested menus and carpal tunnel syndrome; it's automation FTW!  Kill the rodent, and long live the keyboard! :-P


T

-- 
Public parking: euphemism for paid parking. -- Flora
August 28, 2019
On Tuesday, 27 August 2019 at 16:32:08 UTC, H. S. Teoh wrote:
> [..] you want to learn also a very high-level language that makes you think on a whole different level: I recommend Haskell or Lisp after you learn assembly language.

For Lisp, Clojure (https://clojure.org/) is a strong candidate:

https://blog.cleancoder.com/uncle-bob/2019/08/22/WhyClojure.html
August 28, 2019
On Wed, 2019-08-28 at 04:46 +0000, Jani Hur via Digitalmars-d-learn wrote:
> 
[…]
> For Lisp, Clojure (https://clojure.org/) is a strong candidate:
> 
> https://blog.cleancoder.com/uncle-bob/2019/08/22/WhyClojure.html

Common Lisp implementations may still have car, cdr, etc. for backward compatibility, but I haven't seen any human written/read Lisp code using them for ages. So that is a bit of a false argument by Bob on that one. Clojure is fun, but only if you already have to have the JVM and The Java Platform. Common Lisp implementations have all the needful and do not have the resource requirements of the JVM, and they have JITs.

-- 
Russel.
===========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk



1 2
Next ›   Last »