I'm intrigued by your comments that one needs a computer science
foundation to be more effective as a programmer. 

In this article
[http://fortune.com/2015/09/01/computer-science-degree/], it is reported
that a start up CEO says  "He prefers people who have an innate passion
and talent for coding in the first place.".  I think I understand how to
determine if someone has passion... But how do we determine if someone
has " talent for coding"?

There seems to be two camps.  One camp believes you need CS training. 
The other says you need exposure to current technologies and exposure to
working in a team.  Maybe both are correct?

Your thoughts?

On 2018-01-20 14:18, David Schwartz wrote:

> Back in the 80's there was a library I used that I really loved. The author 
> was clearly dedicated to supporting it and was very active on their 
> discussion forum, and was constantly helping people fix problems they had 
> with the code. (It was a 'C' library.) He was constantly releasing updates at 
> a pace that I'd feel challlenged to keep up with. 
> 
> I went to a Software Developer's Conference and this company had a booth, so 
> I swung by to meet the guy. I turns out he was quite disabled. He reminded me 
> of Stephen Hawking. He may have had ALS, I dunno. Nobody said, and I didn't 
> ask. There was also a close buddy of his there who I guess was his 
> "caregiver" of sorts. Sadly, this guy appeared quite drunk most of the time. 
> I suspect he may have been an alcoholic, which must have been quite 
> frustrating to the software guy. (Unless he had some disability himself, but 
> at the evening parties where I saw him, he was going through beers pretty 
> quickly.) 
> 
> Like Hawking, here was a brilliant mind trapped inside of a dysfunction body, 
> and he discovered that software was a great way to keep himself occupied and 
> engaged in the world. Not to mention that because this was a fairly popular 
> library, it brought in a nice steady income for these two fellows.  
> 
> It's not uncommon to find disabled people who've accumulated lots of academic 
> creds. In this case, I'd say it's more a reflection that there's a sharp mind 
> trapped in a dysfunctional body doing its best to keep itself occupied in a 
> positive way. 
> 
> The failure here is probbably on the part of the not-so-sharp minds trapped 
> in fully-functional bodies who probably see their jobs in supporting these 
> people (as "case workers" and "coaches") as little more than pacifiers, 
> keeping folks like Trent modestly occupied and engaged enough so they're not 
> much of a bother to them. That would infuriate the hell out of me if I were 
> disabled. 
> 
> Software is a perfect domain for lots of folks with physical disabilities to 
> engage in because most of the activity around software is going on in our 
> heads anyway. 
> 
> I was quite shocked to find that the developer of that library was so 
> extremely disabled that he couldn't even talk and had extremely limited 
> physical abilities. (I seem to recall he had some kind of beak or stick he 
> wore on his head that let him tap on keys on the keyboard. This was 
> pre-Windows before mice were in common use. His typing was very slow and 
> labored. Yet he managed to write all of that software and help people online 
> and everything anybody else would do. He was just very slow at it, although 
> in the end that didn't matter in the least.) 
> 
> That said, find a project you like that's in a direction you want to learn 
> more about, and just take it on. 
> 
> If you can take classes that help you learn, all the better. Don't worry 
> about your academic background. However, it would be good to have a few core 
> Comp Sci courses under your belt. 
> 
> It bothers me that our educational system has become somewhat bifurcated, in 
> that it's teaching core Comp Sci topics as part of a larger educational 
> curriculum but ignoring them at the other end where they're starting by 
> teaching "coding" and never go very deep with the theory. 
> 
> People need to be able to learn core Comp Sci subjects without being 
> encumbered with all the other crap required to get a Bachelor's Degree. 
> Unfortunately, AA degrees are just the first 2 years of a BS program, and 
> they only include about 1/2 of the core CS material. 
> 
> What's preventing this from happening is a shift in the industry from hiring 
> people with core competencies to hiring people who've mastered superficial 
> skills -- you don't need core competencies to become highly facile with 
> runtime libraries that allow you to crank out code really fast. 
> 
> But all of that code you end up cranking out may not be structured very well 
> because you have no underlying core competencies! This is what people are 
> totally missing, thanks in large part to those who've risen in the ranks 
> without the core competencies and therefor are competely blind to their 
> value. 
> 
> ("Hey, I've never had a compiler construction course, and that hasn't hurt my 
> performance over the years!" Well, this person probably never had anybody 
> with any background in compiler construction or finite automata theory look 
> at their code where that stuff would have helped them and pointed out how 
> horribly it was structured and how hard it is to maintain.) 
> 
> You don't recognize that some particular task requires things taught in a 
> basic data structures course, or you don't see the algorithmic complexity of 
> something you're building because you never had an analysis of algorithms 
> class. With no formal set theory background, you don't have any grounding in 
> how to write efficient SQL queries. With no formal language theory background 
> taught in a compiler construction course, you have no understanding of 
> tokenizing and parsing streams of input data. 
> 
> This lack of foundational background does not prevent you from writing code. 
> It simply prevents you from recognizing various tasks as belonging to a 
> larger set of already recognized and well-understood tasks that have been 
> studied and their various structures and dynamics carved out for them to 
> adapt as a "best practice". 
> 
> The one class that probably had the most relevant impact on my professional 
> life was called "Discrete Math Structures". It was the most boring and 
> seemingly irrelevant class I had in college. But it ended up being the basis 
> of most of the work I've been involved with throughout my career. It was all 
> about "counting". You'd think, "what a boring-ass topic!" Perhaps, but what I 
> learned there forms the foundation of just about everything I've ever done in 
> programming. 
> 
> The point is, when you attack programming from the coding-side -- mastering a 
> language and libraries rather than fundamentals -- you never really learn the 
> fundamentals, other than a little by osmosis. 
> 
> I used to get hired by people who said, "Oh, you've got a Computer Science 
> degree. You can learn anything!" and they didn't give a rip what languages or 
> libraries I knew. Today it's just the opposite. People want to know how fast 
> you can hit the ground running with their particular "stack" and they tend to 
> hire people who have the LEAST TO LEARN. Then they wonder why their code base 
> is big and fat and slow and hard as hell to maintain, and why their 
> development schedules seem to stretch out to oblivion. 
> 
> If you can take some core Comp Sci courses without having to be enrolled in a 
> BS program, I encourage you to do that. Even just one a semester. there are 
> only a handful (6-8) and they'll make a huge difference in your ability to 
> learn new stuff going forward. THIS is the "core" of Comp Sci -- not the rest 
> of the crap you have to take to get your degree, like Sociology, Psych, and 
> English Lit. 
> 
> Spend some time learning these core competencies and you'll find yourself far 
> better for it down the road. That approach won't get you a degree, but you 
> will find it much easier to approach new langauges and platforms and come up 
> to speed faster.  
> 
> Because in the end, everything in the software world really is based on some 
> core foundational theories and disciplines. For example, every imperative 
> programming language is structured the same, and if you understand compiler 
> theory, they pretty much all look and work alike.  
> 
> They didn't teach parallel programming, multi-threading, and stuff like that 
> when I was in college, but they probably do today.  That would be a great 
> class to take if you're trying to learn something like Haskell and how to 
> leverage the use of highly distributed parallel processors, even if they're 
> arrays of CPUs on GPU chips.  
> 
> I believe it's not so much your familiarity with the language and run-time 
> libraries that get you ahead, but rather the underlying theories that the 
> languages are usually based upon that inform a lot of your decisions in these 
> cases.
> 
> So, yes, pick an open-source project to work on and focus on something 
> concrete, like R or Haskell or whatever. But spend some time learning the 
> foundations upon which those technologies are built. 
> 
> -David Schwartz 
> 
>> On Jan 19, 2018, at 9:59 PM, trent shipley <[email protected]> wrote: 
>> 
>> At present I am working through an introduction to R and an introduction to 
>> Haskell. Both are fun, but Haskell is more fun--and harder. 
>> 
>> I'm about a quarter of the way through each textbook. 
>> 
>> I'm also in DES's Vocational Rehab, because I have three disabilities, two 
>> master's degrees, and work as a telephone customer service representative 
>> for low wages. My vocational rehab coach wants me to start contributing to 
>> an opensource project ASAP. I'd like to contribute to Frege (Haskell for the 
>> JVM) but it will be weeks before I can finish the Haskell book, and then I'd 
>> still be a newbie. The most advanced training I have is a community college 
>> certificate of completion in computer programming, so I'm not that 
>> sophisticated or experienced a programmer. I am having trouble convincing my 
>> worker that making a meaningful contribution to an opensource project is 
>> actually a daunting proposition in most cases. Is anybody looking for an 
>> entry-level contributor to an opensource project? 
>> 
>> Anyway, there are opensource projects I'd like to work on.  One is extending 
>> and documenting Frege (https://github.com/Frege/frege [1]). They want 
>> Haskell plugins translated into Frege+Java. The project, unfortunately, 
>> seems moribund. No matter, maybe it would be possible to "borrow" directly 
>> from the GHC after going over a compiler textbook with exercises.  Of 
>> course, what one would REALLY want would be a JIT Frege compiler, and I have 
>> a feeling you won't get that by slavishly translating the GHC. 
>> 
>> The other, rather harder, project I want to work on is translating, then 
>> modifying and extending Peter Sestoft's Funcalc (Spreadsheet Implementation 
>> Technology: Basics and Extensions, 2014). I have some idiosyncratic ideas of 
>> what I want to do with a functional language that is a spreadsheet.  I want 
>> to target the JVM, and write most of the compiler/interpreter in a 
>> functional language. I'd use Frege + Java but Frege isn't nearly mature 
>> enough. I expect that if I ever do it, I'll use Kotlin + Java.  
>> 
>> That implies that future projects are going to be learning to write 
>> compilers and learning to code in Kotlin. 
>> 
>> How might someone with the equivalent of an AA in CIS (not CS) emphasizing 
>> programming get competent at (human) reading and (human) writing of 
>> lexers-parsers-compilers-linkers? What are prerequisites. 
>> 
>> Does anyone have favorite compiler textbooks? Any compiler textbooks they 
>> really hate? 
>> 
>> Regards, 
>> 
>> Trent Shipley ---------------------------------------------------
>> PLUG-discuss mailing list - [email protected]
>> To subscribe, unsubscribe, or to change your mail settings:
>> http://lists.phxlinux.org/mailman/listinfo/plug-discuss [2]
> 
> ---------------------------------------------------
> PLUG-discuss mailing list - [email protected]
> To subscribe, unsubscribe, or to change your mail settings:
> http://lists.phxlinux.org/mailman/listinfo/plug-discuss
 

Links:
------
[1]
https://u2206659.ct.sendgrid.net/wf/click?upn=3cK2FVJjyu2N-2Bxco034fZrrYKskBoDse0NQhf-2FhO68A1Z4BXmqM-2F5GtXeKjNCj2m_6lpMB7VLnN-2Fj9-2FEErg8-2F-2BMBpb5QxlByTgv2M3fbWD9ebvC-2BWrN3h7jImK8EVWYBeuezmM-2FbZmX-2FOxPb9DW3bkjYTFRf21b4-2BZSDHPXSDWg7igh4IQilbRmKSCjqEXClz6ExdyQ05r36dWmr4LxVKmj1eYWW4YRx5U-2FHP2-2F2GfJ5RNEH02eiQYN7og9MM5iWNir7-2FGbQQFzhtJZkLt8Ui7nDIb-2BcF79bScwL89-2Fqb99g-3D
[2]
https://u2206659.ct.sendgrid.net/wf/click?upn=5DvWGaZUY8Sh5aRLWfQTKYiRLVzunonVk948p8WIzMe-2FXlJ9Cta8w8U9xoku9LrUSHNMJbSd3ZEwH-2BqnW2UHlA-3D-3D_6lpMB7VLnN-2Fj9-2FEErg8-2F-2BMBpb5QxlByTgv2M3fbWD9ebvC-2BWrN3h7jImK8EVWYBeuezmM-2FbZmX-2FOxPb9DW3bklWNhPauFwW9c3vKFcMs1u3nHaPxI42vouRZUOBclcX7Rm6zva-2BDOCMx7v6R-2Be01s-2FT-2BkK6OqWynhb76FQxtUnOoKCPAgYCTACQoreTrmXr-2BA1doYVHWQX7dZUuuk324jTm2tZAmlN3Cr8AAyel0zlw-3D
---------------------------------------------------
PLUG-discuss mailing list - [email protected]
To subscribe, unsubscribe, or to change your mail settings:
http://lists.phxlinux.org/mailman/listinfo/plug-discuss

Reply via email to