Re: Enough D to Make a Living?

2017-02-23 Thread Ola Fosheim Grøstad via Digitalmars-d
On Thursday, 23 February 2017 at 17:23:11 UTC, Nick Sabalausky 
(Abscissa) wrote:
And most of those ways being "wrong" or dangerous. And, as you 
mentioned, certain "right" ways becoming "wrong" seemingly 
every few years.


Not necessarily wrong, but either limited to specific scenarios 
or unnecessarily verbose compared to what can be done in the 
latest version of the language.


When you have overlapping mechanisms it becomes more difficult to 
read the code as there are too many ways for people to express 
the same thing. For a wide spread and  continuously developing 
language like C++ it gets worse because developers keep using 
whatever was "right" when they learned about that feature.




Re: Enough D to Make a Living?

2017-02-23 Thread Nick Sabalausky (Abscissa) via Digitalmars-d

On 02/23/2017 09:24 AM, Ola Fosheim Grøstad wrote:


It is not so much about being able to express something as it is about
having N different convoluted ways to express the same thing.


And most of those ways being "wrong" or dangerous. And, as you 
mentioned, certain "right" ways becoming "wrong" seemingly every few years.




Re: Enough D to Make a Living?

2017-02-23 Thread Ola Fosheim Grøstad via Digitalmars-d
On Thursday, 23 February 2017 at 07:36:11 UTC, Shachar Shemesh 
wrote:
That is a matter of perspective. I, for one, feel other 
languages put too much constraints on, making me work quite 
hard to get what I want expressed in the language, often 
blocking me from the most efficient implementation altogether.


What I meant was that what was things along the line of: 
best-practice in the past for meta-programming is no longer the 
best way to go about it today, yet C++ remains backwards 
compatible so... as a result you end up having N ways of 
expressing the same thing. Which makes C++ harder to read than it 
should be.


It is not so much about being able to express something as it is 
about having N different convoluted ways to express the same 
thing.


Which is precisely why it is not a good language to start with 
unless you intend to stick with it.


At this point C++ is a very poor choice for education at any 
level.


Ola.


Re: Enough D to Make a Living?

2017-02-22 Thread Shachar Shemesh via Digitalmars-d

On 22/02/17 13:26, Ola Fosheim Grøstad wrote:

On Wednesday, 22 February 2017 at 09:09:45 UTC, Russel Winder wrote:

Learning C++, then D, then Rust for example will have benefit because
there are new things there even though the core computational model is
effectively the same – they have differences that matter.


Maybe. I think "modern" C++ is a in class of it's own at this point. It
is now quite detached from it's root: C with classes.


I feel slightly bad for sending you to read through the whole of 
http://lbrandy.com/blog/2010/03/never-trust-a-programmer-who-says-he-knows-c/ 
before getting to the punchline on the last sentence, but on the plus 
side, it is very short.


On a slightly different note, "C with classes" is the name of C++'s 
predecessor, which was a preprocessor. Strastrup draws a very distinct 
line between that and the first C++ compiler (cfront).



the computational model as for all the patterns you ought to follow and
not nearly enough constraints from the compiler on what you should not
do.


That is a matter of perspective. I, for one, feel other languages put 
too much constraints on, making me work quite hard to get what I want 
expressed in the language, often blocking me from the most efficient 
implementation altogether.


D is better in that regard than many, but still weights on me on occasion.


With modern C++ you either have to go for being proficient or end up
feeling miserable. Which is quite different from most imperative
languages I think.


Which is precisely why it is not a good language to start with unless 
you intend to stick with it. This is not a language mastered quickly, 
and superficial knowledge of it really is a dangerous thing. There is no 
point in aiming to learn it superficially.


Shachar


Re: Enough D to Make a Living?

2017-02-22 Thread Ola Fosheim Grøstad via Digitalmars-d
On Wednesday, 22 February 2017 at 09:09:45 UTC, Russel Winder 
wrote:
is also proven. However there is a caveat, that the new 
language must
have a new computational model or at least a significant 
breaking

change in something associated with the computational model.


This is probably quite true, of course the more you get used to a 
particular model the more you feel that other languages are 
restraining your ability to express yourself...


Learning C++, then D, then Rust for example will have benefit 
because
there are new things there even though the core computational 
model is

effectively the same – they have differences that matter.


Maybe. I think "modern" C++ is a in class of it's own at this 
point. It is now quite detached from it's root: C with classes. 
Not so much for the computational model as for all the patterns 
you ought to follow and not nearly enough constraints from the 
compiler on what you should not do. With modern C++ you either 
have to go for being proficient or end up feeling miserable. 
Which is quite different from most imperative languages I think.


Other than C++ I think most imperative Algol-like languages are 
in the same mold. The core difference is between system 
programming that requires hardware knowledge, but then the model 
is the hardware and not really the language. If you know 2-3 of 
them (e.g. C, TypeScript, Java) then getting into the others 
don't really require all that much.




Re: Enough D to Make a Living?

2017-02-22 Thread Russel Winder via Digitalmars-d
On Tue, 2017-02-21 at 13:32 -0500, Nick Sabalausky (Abscissa) via
Digitalmars-d wrote:
> On 02/21/2017 10:34 AM, Paul wrote:
> > 3) Is there much value in taking programming classes that don't
> > deal
> > with D?
> 
> Although HR folk never understand this, programming skills are
> highly 
> transferable across languages. So yes, it's definitely worthwhile: 
> Getting better with one language will help you be a better programmer
> in 
> other languages.

The psychology of programming people have incontrovertible evidence
that the very best programmers are able to work to a high level in many
different programming languages (there are many references for this,
see the work by Petre, Green, Sharp, etal.). The hypothesis that
learning to a real working level a new language increases competence on
all previously known language that you still have working knowledge of
is also proven. However there is a caveat, that the new language must
have a new computational model or at least a significant breaking
change in something associated with the computational model. So if you
know C then learning Haskell has great benefit. Then learning List has
great benefit. But then learning Scheme will have little benefit.
Learning C++, then D, then Rust for example will have benefit because
there are new things there even though the core computational model is
effectively the same – they have differences that matter.
  
-- 
Russel.
=
Dr Russel Winder  t: +44 20 7585 2200   voip: sip:russel.win...@ekiga.net
41 Buckmaster Roadm: +44 7770 465 077   xmpp: rus...@winder.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder

signature.asc
Description: This is a digitally signed message part


Re: Enough D to Make a Living?

2017-02-21 Thread Chris Wright via Digitalmars-d
On Tue, 21 Feb 2017 15:34:02 +, Paul wrote:
> I'm in between engineering jobs and exploring the idea of getting into
> programming for a living...specifically D.
> 1) Is there enough D demand for someone to make a living (bread and
> water :} ) at it?

There's enough for someone to do so, and maybe enough for several hundred 
to do it in the whole world. Sorry to say your odds aren't that great.

> 2) I've programmed industrial automation controllers using graphical and
> text-based languages and wrote a few small command line tools in D for
> myself. How long would it take to become "employable"?

If you start your own business, you're immediately employable.

If you go for portfolio-oriented work, then you will be employable once 
you've done something noteworthy in your field.

> 3) Is there much value in taking programming classes that don't deal
> with D?

You will want to learn SQL.

You need to learn the concepts behind asymptotic complexity, at least 
enough to recognize when you've got asymptotic complexity problems.

You need familiarity with common data structures.

If you are working in a particular field and there is a class on that, it 
is worthwhile. For instance, if you are doing computer vision, machine 
learning, or natural language processing, you will benefit from studying 
that specifically, regardless of what language you use.

You need practice programming to be effective, and that practice will 
largely be transferrable from other languages to D.


Re: Enough D to Make a Living?

2017-02-21 Thread aberba via Digitalmars-d

On Tuesday, 21 February 2017 at 15:34:02 UTC, Paul wrote:
I'm in between engineering jobs and exploring the idea of 
getting into programming for a living...specifically D.
1) Is there enough D demand for someone to make a living (bread 
and water :} ) at it?
Anything is possible. Aged companies are more government in their 
operations. Its way to get employed by startups.


2) I've programmed industrial automation controllers using 
graphical and text-based languages and wrote a few small 
command line tools in D for myself. How long would it take to 
become "employable"?
Web, IoT, cloud ... that's where employment is going. You know 
about embedded systems already (IoT). Don't know how much support 
D has in this area though, but seems LDC has good arm support.


3) Is there much value in taking programming classes that don't 
deal with D?
I will recommended studying the few D books, standard library 
(very important), language specification, and basic algorithms. 
Exercism.io is a good learning resource for D and Github D 
projects.



4) What is the best way to find D programming jobs online?

No one really knows. They have to have a reason to employ you 
which your genuine portfolio can help. Some companies look for 
certs whilst others look for capable talents/skills.


Startups are formed everyday.


I don't want to go into whether CS degree is a requirement or not.


Re: Enough D to Make a Living?

2017-02-21 Thread pineapple via Digitalmars-d
On Tuesday, 21 February 2017 at 18:32:22 UTC, Nick Sabalausky 
(Abscissa) wrote:

On 02/21/2017 10:34 AM, Paul wrote:
3) Is there much value in taking programming classes that 
don't deal

with D?


Although HR folk never understand this, programming skills are 
highly transferable across languages. So yes, it's definitely 
worthwhile: Getting better with one language will help you be a 
better programmer in other languages.


Very much this. Companies are never impressed by my knowing any 
language in particular, they're impressed by the fact I've 
written code in so many different languages. Statically-typed 
languages, dynamic languages, scripting languages, JVM languages, 
assembly languages, etc. etc. etc. Definitely let yourself spend 
the most time on a language or two you enjoy most, because it's 
still important to demonstrate that you're able to know a 
language front-to-back. But experiment with as many other 
languages as you can, as much as you feel comfortable and then 
some, because that's how you gradually get to a place where the 
only thing separating you from proficiency with any programming 
language is a week or two of ramp-up time. And that alone makes 
you employable almost anywhere.


As for employability: These days, one of the absolute best things 
you can do is to have an active github account. Put your projects 
in public repositories, even the small ones, and any time you 
think of something interesting or you need a tool for yourself, 
commit code to the site while you're developing it. And never be 
afraid to submit PRs for improving other people's repos, because 
it's almost always welcome and it also looks great in terms of 
employability because it shows how comfortable you are working 
with other people's code.


The overwhelming majority of jobs these days involve writing C++, 
C#, Java, JavaScript, or Python. You will have a much easier time 
finding a job writing code mainly in one of those languages than 
one writing code in D - but that doesn't make learning D useless, 
or anything close to it. Everything you learn by writing D will 
be transferable to those other languages, especially C++. Just 
stay aware that it is well worth your time to familiarize 
yourself with other languages, too, and be open to the 
possibility of finding work that focuses on other languages.




Re: Enough D to Make a Living?

2017-02-21 Thread Dukc via Digitalmars-d

On Tuesday, 21 February 2017 at 15:34:02 UTC, Paul wrote:
I'm in between engineering jobs and exploring the idea of 
getting into programming for a living...specifically D.


Well, D is nowhere near the popularity of the most common 
languages so projects which use D are still rare. There are some, 
trough. However, if you get to choose your language, chances are 
probably good you can. I believe D is stable enough to function 
well in all but the biggest projects. And if you make your 
project, it won't be big enough to cause serious problems.


But even if you won't use D, it may be even the best choice to 
learn, because it handles so many programming styles and shares 
syntax with many common languages. That means that few languages 
are utterly alien for a D programmer. If you learned Pascal, you 
would likely find Haskell totally alien and vice-versa. But a D 
programmer will find some familiarity in both.


Take these with a grain of salt, I do not have much personal 
experience in things like this.




Re: Enough D to Make a Living?

2017-02-21 Thread Nick Sabalausky (Abscissa) via Digitalmars-d

On 02/21/2017 10:34 AM, Paul wrote:

3) Is there much value in taking programming classes that don't deal
with D?


Although HR folk never understand this, programming skills are highly 
transferable across languages. So yes, it's definitely worthwhile: 
Getting better with one language will help you be a better programmer in 
other languages.




Re: Enough D to Make a Living?

2017-02-21 Thread Paul via Digitalmars-d

Great. Thanks Jack.




Re: Enough D to Make a Living?

2017-02-21 Thread Jack Stouffer via Digitalmars-d

On Tuesday, 21 February 2017 at 15:34:02 UTC, Paul wrote:
1) Is there enough D demand for someone to make a living (bread 
and water :} ) at it?


You can scan this page for hiring companies: 
https://dlang.org/orgs-using-d.html


2) I've programmed industrial automation controllers using 
graphical and text-based languages and wrote a few small 
command line tools in D for myself. How long would it take to 
become "employable"?


Look up some programming interview questions and see if you can 
answer them. I would also suggesting having some programs you've 
written in a portfolio.


3) Is there much value in taking programming classes that don't 
deal with D?


Yes, a programmer without CS knowledge is the difference between 
a mechanic and an engineer.



4) What is the best way to find D programming jobs online?


Post here.