Jump to content


Please note: You can easily log in to MPN using your Facebook account!

OT: Learning to code - any advice?


delmar

Recommended Posts

Wow, Murman has an interesting perspective. And I think he equates "coding" with "learning syntax", because if not, nothing he says makes sense.

 

You can learn the syntax and paradigm of a new language in about two weeks.

 

Doesn't mean you can code your way out of a wet paper bag, however. THAT requires actual knowledge. And insight, and all that other stuff that makes a good coder.

 

I'm still trying to figure out the right set of questions to interview coders. The good ones understand systems. The bad ones know all the buzzwords and syntax. Some even know a bunch of patterns. If you can't grasp how a system hangs together, you're no good to me.

 

Same as guys who can't grok abstractions. I have never figured that out. How can you work in this field if you can't pile one abstraction on top of another. It's basically the entire game.

 

Wes

 

 

Agreed. Syntax is the least of it. It's a big reason why I hate those coding tests given by employers--I don't know many devs who can memorize every little syntax element. And it's almost-worthless knowledge anyway. I've been working with SQL for a long time, yet I'm constantly googling details that I forget...my experience can tell me how to essentially go about things, and how to properly plan my approach, and how to avoid pitfalls in design (hopefully!). I don't need to waste brainspace with little details.

 

I don't interview (or help interview) often, and that is a difficult thing. I honestly think you could probably find a good dev by going bowling (or even better, fishing...see how they deal with tangles and fish not biting) just as well as having a formal interview...some of these guys can pack their resumes (and memory) with enough stuff to "beat the test" for that day, but that doesn't mean they will be good workers. Tough one, finding good people....

Link to comment
Share on other sites



  • Replies 63
  • Created
  • Last Reply
Reading their code works. But that's often not possible due to NDAs. A good reason to contribute to FOSS...

Hammond: L111, M100, M3, BC, CV, Franken CV, A100, D152, C3, B3

Leslie: 710, 760, 51C, 147, 145, 122, 22H, 31H

Yamaha: CP4, DGX-620, DX7II-FD-E!, PF85, DX9

Roland: VR-09, RD-800

 

Link to comment
Share on other sites

Wow, Murman has an interesting perspective. And I think he equates "coding" with "learning syntax", because if not, nothing he says makes sense.

Not that everything I say does make sense, but yes, that is the basis for my comment. From what I see, much of the "learning to code" material focuses on topics such as JavaScript syntax and variable scope.

 

There are too many in the job market that know syntax but have no system perspective. I never ask syntax questions in job interviews. I focus on concepts such as data structures, algorithms, operating systems, and concurrency issues.

Casio PX-5S, Korg Kronos 61, Omnisphere 2, Ableton Live, LaunchKey 25, 2M cables
Link to comment
Share on other sites

I never ask syntax questions in job interviews. I focus on concepts such as data structures, algorithms, operating systems, and concurrency issues.

One of my favorite questions when interviewing firmware programmer candidates is "What is self-commenting code?"

I think of this as a punji pit for the unwary. :evil:

Whenever you find yourself on the side of the majority, it is time to pause and reflect.

-Mark Twain

 

Link to comment
Share on other sites

I have been in my engineering career since 1988.

 

Software development alone is not the lucrative career it used to be. Code monkeys can and do get replaced with someone cheaper. In the last ten years the computer science curriculums have seen a big drop in enrollment because students don't see a good future anymore. Too many software developers are not direct employees and working as contractors with little or no benefits and no upward mobility opportunities.

 

The developers that are very good at math (calculus level) and can develop a SYSTEM (EE, ME, engineering physics, others) are very valuable in the job market. I graduated with a BTEE and learned software on the side. My EE skills combined with software experience made me a very marketable candidate in the job market. Employers have recognized this for a long time.

 

If you're considering learning to code for a career, then combine it with an EE or ME curriculum.

 

There are good and bad companies for code development. When I was in college (just before MS Windows came to market) IBM used to go there to recruit graduates. IBM had a terrible reputation for software and the students avoided them like the plague.

Link to comment
Share on other sites

One of my major pet peeves of software developers is lack of documentation. If someone gets promoted or leaves the company, there had better be good documentation for the person who inherits their work. Unfortunately this does not always happen.
Link to comment
Share on other sites

One of my major pet peeves of software developers is lack of documentation. If someone gets promoted or leaves the company, there had better be good documentation for the person who inherits their work. Unfortunately this does not always happen.

Exactly. And the "my code is so elegant it documents itself" attitude is getting more prevalent. A sure sign of an undisciplined, rogue programmer.

Whenever you find yourself on the side of the majority, it is time to pause and reflect.

-Mark Twain

 

Link to comment
Share on other sites

Interesting to see so many musicians here that have a software background.

 

I studied computer science at a college that offered a 3-year coop program. This worked well for me.

 

I worked as a consultant for a few years, then started a software product business with 2 other guys. I sold my shares earlier this year and now I'm retired at 45. I'm playing more music than ever now. I'll probably start another business of some type in the next few years.

Link to comment
Share on other sites

Totally agree with previous comments about documentation. :thu:

 

As a follow-up to my "grumpy" comments. Something that I should have mentioned is that there seem to be different definitions of "coding".

 

Most of us with experience know that "coding" is the implementation part of the software dev process. It requires system and design knowledge to get it right. In the multi-threaded world that I live in, it's really important to code it right the first time.

 

Many today when talking about "learning to code" use "coding" to mean the use of a language executing within a web framework. Since this code executes in a sandbox, it is isolated from a lot of the difficult problems that the rest of us have to deal with.

 

There's nothing wrong with being a coder. But, getting back to the OP, he should realize that his usefulness and career outlook as a "coder" is limited to a single segment of the software dev world and that he could be easily out-sourced.

Casio PX-5S, Korg Kronos 61, Omnisphere 2, Ableton Live, LaunchKey 25, 2M cables
Link to comment
Share on other sites

The best programming partner was someone who was great with syntax and marginal at logic and problem solving. I was marginal with syntax and great with logic and problem solving. I would sit at the computer and key away while he sat behind me with a stack of manuals. I would ask for a function, routine, etc... and he would know it.

 

But there is something else I have noticed about programmers who have imagination and are good problem solvers. Before you know it, you can end up in management. The same skills that make a good programmer are highly sought after in upper management. First you end up as a team leader, and the next thing you know you are the one doing the interviews and have not written a real program in 10 years. It happened to me and to several of my friends who were good at programming. A friend once advised me to minor is accounting as a setup for an MBA. Now I understand why.

This post edited for speling.

My Sweetwater Gear Exchange Page

Link to comment
Share on other sites

Now it's my turn to be grumpy - I have never met an MBA I liked. They all seem to be focused on quarterly performance numbers, even if that means sacrificing long term success. All they want to do is collect their bonus and hop up the revolving spiral-helix ladder to the next company.

 

I guess it's good that I am a small company guy, like Moe. I don't know what the heck will happen to me if this one goes tango-uniform, though. They recruited me before I graduated, 19 years ago. I rue the thought of facing an HR questionaire. No degree, high salary expectations, wide-ranging experience all the way from monkey to network God to CTO. Good at interfacing with Fortune-500 companies, even if I don't like their MBAs (I can hide it). Crackerjack C/UNIX guy, principle author of our current dev platform, a server-side JS platform that predates Node.

 

I better to get to work and make sure this next product is successful, because I am so screwed if it isn't. I just wish I wasn't so old now.

Hammond: L111, M100, M3, BC, CV, Franken CV, A100, D152, C3, B3

Leslie: 710, 760, 51C, 147, 145, 122, 22H, 31H

Yamaha: CP4, DGX-620, DX7II-FD-E!, PF85, DX9

Roland: VR-09, RD-800

 

Link to comment
Share on other sites

Interesting to see so many musicians here that have a software background.....

 

I went to a University where about 25% of the undergraduate students were in the Engineering college, but more than half the people in the jazz ensemble were engineering students. I think there is a high correlation between musical and engineering talent (but I'm not saying you need to be a good musician to be a good engineer).

Link to comment
Share on other sites

Now it's my turn to be grumpy - I have never met an MBA I liked.

Grumpy is good when it lets you express frustration in a useful way. ;)

 

There are MBAs that I bet you'd like. But they are the ones that would never tell you that they have it.

Casio PX-5S, Korg Kronos 61, Omnisphere 2, Ableton Live, LaunchKey 25, 2M cables
Link to comment
Share on other sites

Thanks to everyone for their advice! I have my eye on a 2015 15" Retina MacBook Pro 2.8ghz i7 / 16GB / 256GB SSD.

My biggest fear is that I'm 53 now. By the time I'm ready, I'll be older than that. But 40K would be a big raise for me. Maybe having some coding skills will be enough to get me up the ladder which I'm currently siting on (rung one.)

Link to comment
Share on other sites

So...anyone have any reco's for studying these peripheral yet vital extraneous skills, like syntax and algorithms?

 

There always seems to be a demand for people that can build reports - there's often some coding and SQL skills needed for this. Junior developers right out of school aren't so interested in this type of work so there's less competition at your age, and it pays fairly well. Something to consider, and it doesn't take too long to learn the skills to be productive.

 

 

Link to comment
Share on other sites

delmar: Your question is essentially: "I want to become a musician. Where do I start?"

 

You need to pick a field of interest, and then study it.

 

Wes

Hammond: L111, M100, M3, BC, CV, Franken CV, A100, D152, C3, B3

Leslie: 710, 760, 51C, 147, 145, 122, 22H, 31H

Yamaha: CP4, DGX-620, DX7II-FD-E!, PF85, DX9

Roland: VR-09, RD-800

 

Link to comment
Share on other sites

So...anyone have any reco's for studying these peripheral yet vital extraneous skills, like syntax and algorithms?

In very different ways!

 

The best way to learn syntax is to read other people's code and compare it to yours. What do they do differently? Does what they do differently make sense to you? There's plenty of open source code out there on GitHub etc. but looking at language documentation is usually of higher quality. If you're using Microsoft languages (C# or VB) MSDN has loads of good examples, as do the Python docs. For JavaScript and HTML, MDN is probably your best bet. You'll often see W3Schools mentioned a lot in search results, but while they have plenty of well organised code it's not necessarily of the highest quality! I can also highly recommend the StackExchange network. StackOverflow is the best known site, designed for coding Q&A but the Code Review site is much overlooked. The latter is designed for people to submit their completed code for comment and is a fantastic place for feedback.

 

As for algorithms, try an online code challenge like Project Euler. It's full of interesting problems that are designed to be solved by computer. Otherwise this thread has collated a very large number of similar sites.

Link to comment
Share on other sites

So...anyone have any reco's for studying these peripheral yet vital extraneous skills, like syntax and algorithms?

 

There always seems to be a demand for people that can build reports - there's often some coding and SQL skills needed for this. Junior developers right out of school aren't so interested in this type of work so there's less competition at your age, and it pays fairly well. Something to consider, and it doesn't take too long to learn the skills to be productive.

 

 

 

Definitely. SQL is kind of an odd beast (being set-based) but really isn't that hard IMO to do some pretty powerful things. I have seen advanced stuff--usually for generating reports--that can be pretty overwhelming...but some really simple commands can show data.

 

A subset of "reports" is software that is used to create "dashboards". This is in high demand right now; my friend was laid off from a long-time job, but because he knows Tableau (one of the big commercial dashboard softwares) he got a fantastic contract work at some pretty amazing hourly rates...The nice thing about doing reports and dashboards is that they tend to be more self-contained and you don't have the complex frameworks that web applications now use. At least that's how it seems to me from a bit of an outside viewpoint--I work on the data that other developers use to build reports :)

 

It's always amazing to me what a chart or fancy dashboard can do to a room full of people, especially executives: they will treat a report writer like a conquering hero for something that looks attractive, while we data guys are over in the corner thinking "why not just look at the data in rows and colums, you'd get the information that much faster" LOL

Link to comment
Share on other sites

MorayM - Totally disagree. The best way to learn syntax is to read the manual or a similar book. Reading others' code is the best way to learn idioms and best practices. Note that idioms and best practices are FAAAR more important than syntax. Syntax is nearly irrelevant. You can just get a passing familiarity with it, look stuff up when you need it, and let the compiler catch most of your mistakes.

 

If you're learning C, get K&R and The POSIX Programmer's Guide. C++, get Stroustroup. JavaScript, get "The Good Parts" (Crockford) and "The Definitive Guide" (Flanagan).

 

Agreed, MDN is the best resource on the web for HTML, JavaScript, CSS, and so on. Not sure they have any "starting to code" stuff..........although I guess I did use some of their content to learn HTML and JavaScript back in 1997-1998 when it was called devedge.netscape.com.

 

Microsoft used to have great online content, too; they probably still do. Haven't kicked at MS-specific stuff since IE6 and VB4 though.

 

Wes

Hammond: L111, M100, M3, BC, CV, Franken CV, A100, D152, C3, B3

Leslie: 710, 760, 51C, 147, 145, 122, 22H, 31H

Yamaha: CP4, DGX-620, DX7II-FD-E!, PF85, DX9

Roland: VR-09, RD-800

 

Link to comment
Share on other sites

It's always amazing to me what a chart or fancy dashboard can do to a room full of people, especially executives: they will treat a report writer like a conquering hero for something that looks attractive, while we data guys are over in the corner thinking "why not just look at the data in rows and colums, you'd get the information that much faster" LOL

The prettier and simpler the chart the more meaningful it is to senior execs who don't understand the key metrics that drive their business.

A misguided plumber attempting to entertain | MainStage 3 | Axiom 61 2nd Gen | Pianoteq | B5 | XK3c | EV ZLX 12P

Link to comment
Share on other sites

Also, there are a large number of youtube videos on various programming topics. Good for those visual/auditory learning folks.

 

Along the same lines are online "courses". In quotes because I don't mean formal university traditional courses. There are free ones (like IBM's Big Data University) and paid ones (lynda.com). We get lynda access through work and there are some really outstanding video courses on there.

Link to comment
Share on other sites

If you're going to take online courses, it might be worth your while to investigate MIT open courseware....

 

https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/

Hammond: L111, M100, M3, BC, CV, Franken CV, A100, D152, C3, B3

Leslie: 710, 760, 51C, 147, 145, 122, 22H, 31H

Yamaha: CP4, DGX-620, DX7II-FD-E!, PF85, DX9

Roland: VR-09, RD-800

 

Link to comment
Share on other sites

MorayM - Totally disagree. The best way to learn syntax is to read the manual or a similar book. Reading others' code is the best way to learn idioms and best practices. Note that idioms and best practices are FAAAR more important than syntax. Syntax is nearly irrelevant. You can just get a passing familiarity with it, look stuff up when you need it, and let the compiler catch most of your mistakes.

 

Ah yes, I assumed you meant coding style when you said syntax. For me the syntax of a language (e.g. where your brackets and semicolons go) is inextricably linked to the language itself, I'm not sure how I'd go about learning a language without learning its syntax at the same time!

Link to comment
Share on other sites

Yeah. :) This stuff can get nitpicky. And, as you point out, they are inextricably linked in real life! When I say syntax, I literally mean what yacc and lex know about the language. i.e. what you can express in a token list and grammar.

 

But when I say idiom, I don't really mean style (which generally means brace, bracket, space, etc, positioning, naming stuff, organization) - but more about how you express yourself in the language.

 

So, for example - a loop in C often looks like this:

 

for (i=0; i < 100; i++) {;};

 

but a similar loop could be written

 

for (i=0; i++ < 100; i) {;};

 

or

 

i=0;
do 
{;} while(i++ < 100);

 

or even

i=0;
label:
i++;
if (i < 100) goto label;

 

.........but they just "aren't" - these examples are not correct, idiomatically speaking, even though they could produce correct results. When we talk about idioms, we think more about how the human reading the code will parse it than the compiler. And this applies both on the micro scale, as above, as the macro scale when doing larger blocks or even system design.

 

(aside - idiomatic use of for-loop in C without thought causes brain damage in new developers. I encourage them to think of the loop in terms of initialization, invariant assertion, and propulsion statements. This lets them access a richer mindspace, where they might write things like

for (entry = getFirstRow(); entry != NULL; entry = getNextRow()) { doSomethingWith(entry) };

)

 

Another idiom in C is the (thankfully archaic) while ((*p++ = *q++)); and its variants. It communicates immediate meaning to an experienced hacker like myself, but is moderately opaque to those not in the know, even if they understand the syntax. Not unlike the English idiom, "under the weather".

Hammond: L111, M100, M3, BC, CV, Franken CV, A100, D152, C3, B3

Leslie: 710, 760, 51C, 147, 145, 122, 22H, 31H

Yamaha: CP4, DGX-620, DX7II-FD-E!, PF85, DX9

Roland: VR-09, RD-800

 

Link to comment
Share on other sites

I'm a Systems Analyst, specializing in J.D. Edwards Business Software that runs on the IBM iSeries machines and others (Midrange computers), 'JDE' is now an Oracle product now, Larry Ellis bought them out...I started out in IT in 1973-74 after gigging my whole teenage life away....went back to collage to get my BS....made a pretty good living, could have made more...It's cut and dry clean work...I'm half a business person though, if in business IT as you move up you become more business oriented... Sales Order and Distribution...I work at Voxx Corp. who now owns Klipsch Speakers (the official speakers of the R & R Hall of Fame) ...

 

As soon as I got out of collage (2 years late for my age due to gigging) I started gigging again...

 

 CP-50, YC 73,  FP-80, PX5-S, NE-5d61, Kurzweil SP6, XK-3, CX-3, Hammond XK-3, Yamaha YUX Upright, '66 B3/Leslie 145/122

Link to comment
Share on other sites

I am a software engineer for NASA, I develop algorithms for turning space based LIDAR instrument and spacecraft telemetry data into meaningful measurements of atmospheric aerosols. I code in C++, Java and python mostly but I am also good at various web technologies(javascript,php etc). While an Avionics technician in the USAF, I studied Math, Physics and Computer Science using GI Bill benefits. As soon as I graduated I also returned to gigging again on weekends after about a 10 year hiatus. I retired from the AF in 99 and started working for Langley Research Center the next day. Due to many reasons including abuse of the H1B visa programs and contracting overseas firms instead of hiring, many IT specialties aren't near as lucrative or stable as they once were.

Boards: Kurzweil SP-6, Roland FA-08, VR-09, DeepMind 12

Modules: Korg Radias, Roland D-05, Bk7-m & Sonic Cell

Link to comment
Share on other sites

I am a cisterns analyst. Much of my training was spent watching U-tube videos. I am ambitious and intend to undertake further education. My next goal is to study SQN and see if I can work out where they have hidden all the vowels.

 

I am willing to work hard and am about to buy the POSIX programmers guide. In preparation i have already purchased a large mirror.

 

I am also trying to get hold of Stroutsoup, although I tend to prefer leek and potato.

 

Unfortunately, it has been said that my standard of work is not very good.... This worries me. I hope that I will not, at some point, be unfairly taxed for my syns ...

 

But I do believe all the effort will be worth it. Indeed, it is my hope that, when I am sufficiently educated, people will finally stop calling me idiom.

"Turn your fingers into a dust rag and keep them keys clean!" ;) Bluzeyone
Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...