Im too sick to be coherent but just do it. Even if all you do is write documentation or fix misspelled words. Get started. First step of millions miles journey or something.
> On Jan 20, 2018, at 2:18 PM, David Schwartz <newslett...@thetoolwiz.com> > 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 <trent.ship...@gmail.com> 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). 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 - 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
--------------------------------------------------- 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