P.S If anything I would recommend learning networking... If I was going to say do something practical, assuming your networking knowledge is somewhat limited.

1. Learn to write and run a simple HTTP server.
2. Install it on a AWS server or get a Digital Ocean droplet.
3. Learn to create firewall permissions.
4. Run A/B tests. How well did it perform? What can you do to make it better from a networking/software prospective?
5. Go back to the drawing board and repeat.

Once I first got into programming, I barely knew networking. This was the thing that bit me in the butt more than often, and at the time getting a server you can run your own software wasn't cheap. And a lot of software/programs these days require you to know how to set stuff like this up, since it's in way more demand. Node.js, Erlang, Go to name a few that are very server/networking oriented languages.

Andrew McRobb
Full-time Software Developer
Part-time Freelancer

On Wed, Jan 24, 2018 at 11:47 AM, David Schwartz <newsletters@thetoolwiz.com> wrote:

What’s your top priority?

Learning how to write compilers?

Or learning something that will lead to gainful employment, growth, and income?

There’s very little call for people who write compilers today. As an academic exercise, that’s fine. Just don’t expect it to lead to employment any time soon.

Also, writing a compiler in a functional language is ill-advised. Compilers need to be FAST! That means using C or some other compiled language.

This is a relatively mature field as far as tools go. Lex and Yacc have been around since the 80s, and they’re still the go-to tools for anybody who wants to build a lexer and parser. There have been some “better mousetraps” over the years, but the companies who put them out have disappeared since the competition for compilers has dried up.

Microsoft, Oracle/Sun (Java), and Apple (Objective-C, Swift) pretty much dominate the market for “captive” compilers.

There are also the open-source ones that you’ll find on every Linux machine: php, perl, gnu c/c++, etc.

Learn to program in something people are paying for, like R.

C# and Java programmers seem to be a dime a dozen as the market is flooded with foreigners.

Depending on your organizational skills, you might also want to look into DevOps. It’s a very broad subject and you’ll work with several different languages and tools, some with very strange names like chef and puppet.

DevOps is not an area you’re likely to find any specific classes in, although it’s a growing field, especially in terms of managing things in the cloud.

But there are several good books on the topic. Search Amazon to see what’s there.

-David Schwartz

On Jan 23, 2018, at 6:39 PM, trent shipley <trent.shipley@gmail.com> wrote:

Since my other thread degenerated into a “school bad, school good” flame war, I thought I would try again.

I have little academic OR practical background with programming.

I want to write a couple of compilers.

The compilers are for functional languages.

I would PREFER to write the compilers with functional languages (1, a Haskell to JVM compiler mostly in Haskell with with some Java, 2, Funcalc--a pedagogical spreadsheet in Kotlin.)

I'm pretty good at learning computer languages, and so far teaching myself Haskell has failed to produce insurmountable obstacles.

But programming compilers is supposed to be HARD, and very much indebted to theory (as in, things they DO teach in school).

I have no money for school, (and whether school produces better coders or not, I LIKE school, but that's irrelevant due to the money problem.)

Is it possible to teach yourself to write compilers in an imperative language? If so how? Having learned to write compilers with imperative languages, how do you convert to writing compilers in functional languages (for example, given Haskell [thought by many to be hard], writing lexer-parser-compilers is considered easy)?

Regards,

Trent. --------------------------------------------------- PLUG-discuss mailing list – PLUG-discuss@lists.phxlinux.org To subscribe, unsubscribe, or to change your mail settings: http://lists.phxlinux.org/mailman/listinfo/plug-discuss


---------------------------------------------------
PLUG-discuss mailing list - PLUG-discuss@lists.phxlinux.org
To subscribe, unsubscribe, or to change your mail settings:
http://lists.phxlinux.org/mailman/listinfo/plug-discuss