___  ___    _ _    _  _ _____   _____
 / __|/ _ \  | | |  | || |_ _\ \ / / __|
| (_ | (_) | |_  _| | __ || | \ V /| _|
 \___|\___/    |_|  |_||_|___| \_/ |___|

 --- A GOPHER-LIKE INTERFACE FOR HIVE BLOCKCHAIN ---

Question for Programmers

BY: @haushinka | CREATED: March 2, 2018, 6:42 p.m. | VOTES: 5 | PAYOUT: $0.12 | [ VOTE ]

I have a diploma as a Programmer/Analyst but it's been years since I've done anything to do with programming. I got into a different field after graduation kind of by fluke and ended up maintaining an office and server.

I'm looking to get back into programming and was wondering what's better to start with.

Ruby or Python?

https://s14.postimg.org/3pb8balk1/210414.png https://s14.postimg.org/6w5ruyo0h/5440487-1122329314-52705.png https://s14.postimg.org/cx3gs1xs1/opengraph-icon-200x200.png

Or am I better to focus on something else? I originally learned Visual Basic 6 and C++ but figured it was probably better to focus on something more current for re-learning things.

Suggestions?

TAGS: [ #life ] [ #programming ] [ #computers ] [ #career ] [ #learning ]

Replies

@woz.software | March 3, 2018, 4:08 a.m. | Votes: 1 | [ VOTE ]

depends at the level you want to work. UI/Web and hard to avoid JavaScript/HTML5 although Elm is very interesting.

Move lower down the stack and things like C++/C# are popular. I am a huge fan of C# over C++ although C++ still has huge traction.

Python is a great language but things like F# and Haskell are gaining ground. Facebook has one of the biggest Haskell stacks out there although they still run a lot of PHP (oompf I have just thrown up in my mouth) lol

All boils down to where you like to work and the languages you like :)

@haushinka | March 5, 2018, 1:19 p.m. | Votes: 1 | [ VOTE ]

That's the complicated thing. I've been out of the game so long it's hard to figure out where to jump back in. I guess I'll take your advise and focus on what I really want to do with the language before going full steam ahead.

@woz.software | March 7, 2018, 9:05 a.m. | Votes: 1 | [ VOTE ]

Best thing. I found I am happiest below the UI level, better fit with my mind. So my weapons of choice are C# and F#.

I have gone through all the normal Basic, VisualBasic, C, C++, Java, JavaScript, SQL etc before I fell in love with C#.

C# is a C style language with some great syntax and language sugar and no pissing around with memory management :)

Over the last few years though I found Functional languages and those I really love. I prefer ML style over Lisp style though as Lisp is bracket hell. I picked F# as it interacts with C# and .NET so a natural fit. I dabbled with Haskell which is one of the most beautiful yet mind melting languages I have encountered. Just when I think I have groked it my mind melts again and I realise I haven't. lol

@haushinka | March 7, 2018, 7:20 p.m. | Votes: 1 | [ VOTE ]

I don't know if I'm more motivated or less after this. It just becomes so overwhelming haha. I appreciate all the info and I'm going to check out the one's I haven't heard of that you mentioned.

@woz.software | March 8, 2018, 6:04 a.m. | Votes: 1 | [ VOTE ]

I would start in imperative world as that sounds like the space you came from. Get comfortable and feel like you are getting up to speed again then as a side project explore functional.

Even if you do not ever use it in anger it will change your perspective on code and how you plug it together.

C# and even Java have started to pick up aspects of functional now.

Take the following array of people objects

var people = 
    new[]
    {
        new Person {Name = "Tom", Age = 15),
        new Person {Name = "Bill", Age = 25),
        new Person {Name = "Bob", Age = 30),
    };

I am sure you couple probably think how you might might get the names of all people over 25. Loop through, check the ages and put the names into an array.

The more functional way is called map, filter, reduce. Here is the C# LINQ syntax in action

var names = people
    .Where(x => x.Age >= 18)
    .Select(x => x.Name)
    .ToArray();

Where is filter, it filters out based on the filter function it is given, in this case where age 18 or above. Select is map. It reshapes data, in this case it has picked the names out of the people object.

This is called a fluent interface. The results of each step are pushed into the next step to save holding intermediate variables etc

It also has a longer form syntax

var names = 
    from person in people
    where person.Age >= 18
    select person.Name;

As you can see it almost looks like a database SQL style language. This was intentional when they designed the syntax to make it feel familiar.

There are some real fun changes in languages from when you last touched them so just enjoy the journey and create small test programs to test new things you are trying to learn.

@haushinka | March 8, 2018, 7:07 p.m. | Votes: 1 | [ VOTE ]

Very helpful. Thanks for the insight. That's my plan start small, get my feet under me again and then figure out the direction I wanna go in. It seems like there's a lot of options nowadays.

@woz.software | March 8, 2018, 10:25 p.m. | Votes: 1 | [ VOTE ]

Too much choice. Back when I started working in code for a living (Mid 80s) you could keep a wide knowledge up to date. Not now the field is so wide you ether ending up with no depth to your stills and focus wide or go deep.

I prefer the deep route, makes you a better coder in that focused area. I explore other stuff when I get the chance, hence stuff like the F# roguelike. Big enough to test stuff but small enough to be throwaway just to learn :)

@haushinka | March 12, 2018, 2:43 p.m. | Votes: 0 | [ VOTE ]

Thanks I'll definitely go focused once I decide where my interests and skills lay.

@irelandscape | March 3, 2018, 10:23 a.m. | Votes: 2 | [ VOTE ]

To be honest the importance of a specific programming language is largely overstated in my opinion.
What matters more is to acquire expertise in the architecture of a program. That is, how to divide information into data structure, split functionalities into routines and libraries, etc.

Once you have learned a programming language to a reasonably advanced level, it is not difficult to learn another one (with a few exceptions).

To get started Python is not a bad choice because it is not too difficult. No dynamic memory allocation and no need to compile it. There is a plethora of libraries available for many applications.
I think Ruby is good as well but I don't know it.
Currently Golang (also called Go) is also very popular.

@haushinka | March 5, 2018, 1:20 p.m. | Votes: 0 | [ VOTE ]

Thanks I appreciate all the feedback you gave. It's overwhelming getting back into it when the last time I was heavily doing it was in Visual Basic 6 and C++ but I think you're right about if you understand the principles it translates well between languages.

@woz.software | March 7, 2018, 9:15 a.m. | Votes: 2 | [ VOTE ]

Yep, only time that breaks down is when you cross paradigms, such as imperative to functional as the structure and how you do things is worlds apart.

But within a paradigm all skills translate. Really easy to move between C style languages as the basics all feel really familiar :)

If you want to see what I mean in the shift of mind set in functional languages I wrote a series building the basics for a roguelike game in F#. Detailing the thought process I went through as I wrote it.

Here is the final part in the series but it links to all the earlier parts.

A real succinct language that when you are used to reading it makes a great deal of sense but can look like gibberish when you first encounter as you can partially apply functions. This means you can them with too few arguments and it results in a new function with the remaining arguments. The functions do not actually call until they get the last argument they need.

@haushinka | March 7, 2018, 7:19 p.m. | Votes: 0 | [ VOTE ]

Thanks, I'm gonna check out your series.

[ BACK TO TRENDING ] [ BACK TO MENU ]
CMD>