Shop OBEX P1 Docs P2 Docs Learn Events
Upskilling Programming — Parallax Forums

Upskilling Programming

Programming, in general, seems to be one of the weakest skill among undergrads across all disciplines. I'm not sure if this is also true in other countries like what I am currently experiencing. Are there any activities (e.g. on-the-job training, external training institutes etc.) implemented in other uni or organizations that help fresh grads to acquire programming skills? If so, could you share your experiences?

Thanks

Comments

  • Uh, if an undergrad, such as Computer Science or Computer Engineering, is looking to get a job that involves programming out of school, the expectation is that graduate has programming skills coming out of school. These days, it would seem these skills would have been acquired prior to attending college. However, there are a ton of opportunities to obtain programming skills. Many of the tools, IDEs, are free to download, and the hardware for folks looking to go the embedded route is very cheap. Plus, there are a ton of sites such as Udemy, edX, Coursera, CodeAcademy, the Parallax site and many others that one can take online courses. Internships would be good, but again, there would be an expectation of having some programming skills prior to the Internship.

    There really is no excuse these days outside of plan laziness to not have programming skills as an undergrad who is pursuing a degree in an area that requires programming skills.
  • It's not the lack of opportunity.

    Real programming - is a discipline that takes time and real effort to learn and do well. A lot of people express an interest and would 'like' to program but won't put in the effort to get much past:

    print "Hello world!"

    Another thing about programming - it doesn't tolerate sloppy work or careless errors. Sometimes those mistakes jump right out at you and sometimes they are hidden in the spaghetti. In either case it forces you to accept that you're no where near as smart as you thought you were. And just when you think you're beyond that - it bytes you again.

  • Heater.Heater. Posts: 21,230
    edited 2017-02-15 10:45
    MacTuxLin,
    Programming, in general, seems to be one of the weakest skill among undergrads across all disciplines.
    That observation, made by Eben Upton 5 or 6 years ago, is what caused him to dream up the Raspberry Pi idea. Eben was responsible for admissions to CS undergrad courses at Cambridge University and noticed that recent intake had no experience of programming. As compared to years gone by when those that were kids in the early 1980's were proficient in programming by the time they got to uni, thanks to the hours they had spent with C64, Sinclair, etc computers.

    The Raspberry Pi has now shipped 11 million units and supports a large educational foundation focusing on programming, CS and technical skills for kids.

    Way back in my undergrad physics days we had some courses in programming, BASIC, Algol and Symple (A C like language used to build The Kent Online System(KOS). We had to take those in our own time. We did have use of the ICL 2960 mainframe, mostly at night.

    Today anyone who wants to learn to program, and get into some serious computer science only needs a web browser.

    I guess it's a case of inspiring that "want to learn" part. Robotic toys and blinky lights to control can do it for a lot of youngsters.
  • Hi

    man- I have tried and tried to interest young people in programming- but mostly they just don't get excited by flashing led's and bouncing balls- they can see much more exciting stuff on their 'phones. I wish I knew the magic moves required to get them to see the fun of developing something new- original. Inevitably you have to explain binary, logic, hex, even ohms law and so on and its all just too much hard work for them.
    When I was in my teens I was really enthusiastic- but there was NO ONE who could explain- data sheets were expensive- books were expensive if they even existed, there were no bread boards. I struggled hoping the monthly electronics/radio magazine would have something of interest. Today there is the internet with easy access to information, tutorials, cheap gear- no excuses... Perhaps they have lost their imagination and sense of wonder with everything handed to them on a plate?
    If anyone has found a method that has good results- please share with us.

    Dave
  • That's what happens when I write something while debugging another system :p I re-read what I wrote & I need to correct my initial intent. There's actually 2 part to this:

    1) Fresh grads (Computer Science students in particular) do have the programming skills which they learnt from school but there seems to be a gap (knowledge/skills/experiences) to what the employers are looking for. I agree 100% that self-learning is the way as that's how I learn myself. However, these young adults, with no prior work experience, will not knows what to prep themselves for the industry. As educators/instructors, how & what best bridge such gaps?

    2) Fresh grads from other disciplines (Mechanical, Electronics, Mechatronics etc) generally are not interested in programming. However, convergences are happening in different industries where cross disciplines are not just an advantage but a necessary skills for them to secure a job. For these groups, what could best interest them?

    I appreciates some the suggestions provided above. We've projects on Raspberry Pi, Arduino & I'm pushing the Prop. It doesn't seems to create that motivation/passion to self-learn. Could this be the influence of the smartphone/tablet that these devices can do so much that nothing else could "wow" them more while requiring less/minimal effort (apps freely/cheaply available)?
  • Heater.Heater. Posts: 21,230
    MacTuxLin,

    I don't mean to sound elitist but perhaps there are just too many kids in university now a days.

    In my day only about 10% of people attended a university and got a degree. Which was a lot compared to times gone by. So when I got there I was over the moon to be surround by so many passionate, enthusiastic and hard working people. No matter what they were studying. Most of them smarter than me.

    Universities used to be academic, they were not there to teach perceived current job skills and churn out workers. That was the job of technical schools, polytechnics, and apprenticeships.

    Which sat well with my experience in school. Only a few percent were into studying anything unless they had to. Most of them seemed to be into nothing but football.

    Of course that meant that when I graduated, in physics, I was totally unprepared and useless for the work place. That meant two years on the job training with a big electronics company. Perhaps I would have been better off going to one of those polytechnics!

    How to motivate kids today? I have no idea, when my boy was 12/13 he was into creating games with some game creating tool. Would occupy him for hours on end. I was kind of happy about that as it was one step up the ladder to programming, creating things, not just playing games. Mind you that was 10 years ago now.

  • Heater. wrote: »

    How to motivate kids today?


    I think that robotic courses in school are great, if you opt to take the class. But in grade school, wouldn't math class been a little more interesting if the kids had had a robot or a microcontroller to test math principles on. By the time kids are in high school there main interest is socializing.

    My kids were able to take a calculator to math class, that could make you lazy.
  • Heater.Heater. Posts: 21,230
    MkeeDYur,
    By the time kids are in high school there main interest is socializing.
    Not me. I think secondary school was the least social time of my life. In the whole place there was only about 4 pupils who ever did or said anything interesting. And one teacher.

    Could someone explain to me why kids need calculators in school now a days. I recall that in early school one is learning to count and do arithmetic. There a calculator is useless, you are supposed to be learning about numbers and arithmetic, right? Then comes many years progressing though algebra, calculus, set theory, linear algebra etc. No calculator ever required there either. It's all symbolic manipulation. If one got a result of 3π/2, or whatever, one stopped there. No point in turning that into a number.

    Many of us had calculators. I built my own from a kit in 1972 http://www.vintagecalculators.com/html/advance_wireless_world.html Mostly got used by my father for book keeping.


  • MikeDYurMikeDYur Posts: 2,176
    edited 2017-02-15 19:46
    Heater. wrote: »

    Could someone explain to me why kids need calculators in school now a days.



    When my girls were In high school, a calculator was required, at our expense. It had to be a graphing calculator, and the cheapest we could find was near a hundred bucks.
    My father told me more than once, that when he was in school that everything was supplied.
    My daughter told me that her children are urged to buy extra pencils, pens, paper and tissues, for someone else in case they are not able to bring their own. They had changed school districts once after two months, and had to leave the supplies behind Then turn around and repurchase supplies for the new school. Retailers treat schools open like another money making holliday.
  • Heater.Heater. Posts: 21,230
    Well there is a case in point, the graphing calculator. What is that for?

    I recall, age 12 or whatever, plotting curves of y=x², y=1/x, etc, etc. No calculator required. Doing it manually instills a gut feeling of what is going on. Which punching an abstract formula into a calculator and getting some squiggle as output can never do.

    Later we were drawing the approximate, expected, shapes of polynomials by deriving their maxima, minima, points of inflection etc. No calculator required to crunch hundreds of numbers.

    What are calculators in school for? Why would anyone in school need one for an exam? Our exams were about demonstrating understanding, not crunching numbers.

  • evanhevanh Posts: 15,126
    In exams I use the calculator to do the working and get the result then write it down pretty much as I did it. In life I don't bother writing it all down.

    Speaking of which, it's not easy to find a small scientific calculator that fits well inside a shirt pocket so it doesn't just fall out the moment you bend over. The school ones are far too big.

    I live with a calculator, a pencil and a torch on me at all times. When at work I add a 2.5mm flat-blade and a marker pen. The pencil has an extendable eraser - also hard to come by. The torch on my hip is not very visible but has cause more than one person to do a double take.
  • Heater.Heater. Posts: 21,230
    I still don't get it.

    None of our exams since primary school were about numbers and arithmetic as such.

    One could actually get an answer totally wrong and still get a 90% mark. How, because if your page of reasoning for some question is OK up till the last step or so and then you screw up, you get credit for all the good part.

    As they used to say "Show us your working". Don't just write down a result. If you just wrote the result you might only get 10% of the available marks even if it was right.

    Yeah, can't live without a pen/pencil and paper, knife/penknife/letterman, ruler, torch/lamp, soldering iron.

    Calculator? Not so much. If I ever have to seriously crunch some numbers and get an accurate result I just type it into the nearest Javascript/Python command line. I'm surrounded by computers wherever I go.

  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2017-02-15 22:56
    evanh wrote:
    Speaking of which, it's not easy to find a small scientific calculator that fits well inside a shirt pocket so it doesn't just fall out the moment you bend over.
    eBay is your friend: http://www.ebay.com/itm/Casio-Vintage-fx-115M-Scientific-Calculator-w-Case-Manual-Solar-Power-Works-/222402654870?hash=item33c83b3296:g:RSUAAOSwNnRYmqFs

    I've used one of these for years and recently bought a spare from eBay for use in the shop. I totally love this calculator. The only thing I had to do with the unit from eBay is to replace the internal battery so it would remember my settings between uses.

    -Phil
  • evanhevanh Posts: 15,126
    It's funny you should highlight that model Phil, I believe that's what I had for 15+ years until it finally succumbed to my rough handling. The fact that you're digging up second hand items says quite a bit.

    I'm currently using some cheap Taiwanese thing that has no battery at all. It's unnamed and doesn't even have a model number. It suits me but I doubt I'll be able to find it again when this one breaks.
  • Heater.Heater. Posts: 21,230
    Wow, the Casio FX-115M. I had one of those, or something very similar, for years and years. No idea what happened to it.

    Somewhere in the basement I have a Texas Instruments TI-59. LED display, card reader and all. Last time I checked it all still worked.

    https://en.wikipedia.org/wiki/TI-59_/_TI-58



  • MikeDYurMikeDYur Posts: 2,176
    edited 2017-02-16 03:15
    Heater. wrote: »
    Wow, the Casio FX-115M. I had one of those, or something very similar, for years and years. No idea what happened to it.

    Somewhere in the basement I have a Texas Instruments TI-59. LED display, card reader and all. Last time I checked it all still worked.

    https://en.wikipedia.org/wiki/TI-59_/_TI-58




    My first programmable, the TI-58. 100 step program memory. It helped get me interested in computers. Not that I needed any help, but that was all I could afford. My best friend at the time had the 59. I sure was envious.


    EDIT: It must have been the TI-57 that I owned, by jogging my memory through eBay I realized that the calculator I had didn't have modules. And didn't have a way of saving the 100 step program that was entered.
    Anyway it was my first programming experience outside of setting an alarm on a clock.
  • In a time before the internet and google ... well there were BBS's (Bulletin Board Systems), but I digress... I was texting when texting wasn't cool in the mid 80's.

    I used my computer (Atari and my trusty 8088 clone) to do most of my Math and Chemistry homework... Cheating?, no not really, you see I wrote programs to do my work for me from scratch, so I had to understand the work at hand to begin with in order to write the program. I needed to just solve the problems faster so I could play with electronics after my homework. The caveat is that I had to show my work as well, so in writing the programs, I had to write them in such a way as if it were done in long hand. Not as trivial as you might think, it's a good programming exercise to say the least. I had a few teachers that would allow me to turn in my homework typed with the work shown. <-- Yes, I was that kid in school.
  • Cluso99Cluso99 Posts: 18,066
    edited 2017-02-16 03:48
    My first scientific/engineering calculator from 1970.

    Something like this Faber Castell 2/83N Slide Rule...

    Faber%20Castell%20Slide%20Rule%202-83N.jpg

    I still have it on my boat just in case I need to do some manual calculations in a power out situation.

    Never bought a battery/electric scientific/engineering calculator though.
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2017-02-16 04:23
    That looks very similar to the Dietzgen sliderule that got me through undergrad Physics:

    Dietzgen_1741_NovoBiplex_RodLovettCollection.jpg

    At least with sliderules, you still had to think when you used them. After I got my first four-function electronic calculator, the first thing that went was long division, followed soon thereafter by multiplication. It's been a slippery downward slope ever since!

    -Phil
  • 1) Fresh grads (Computer Science students in particular) do have the programming skills which they learnt from school but there seems to be a gap (knowledge/skills/experiences) to what the employers are looking for.
    So, do you fault the student or do you fault the school for not being in line with the industry? I am not sure where your school is, but what is taught in Universities that I have been in or around in the US differs from school to school. But the lack of aligning to the industry is not just a Computer related issue but covers non technical declines as well. An issue I had seen and heard from other Engineers is that in some major Universities the Professor is more interested in his own research or book writing and not with the students education. Also, the professor either never worked in the specific industry they are teaching, or, if they had, it was like 20 years prior. If they do not keep up with trends, then the student suffers. There was a quote that was said to me by a wise teacher some time back "If the student fails to learn, the teacher failed to teach." Personally I do not put the complete blame on the Institute and feel the individual needs to take responsibility for their own education. One Professor I have complete respect for is Dr. Jon Valvano from the University of Texas. He not only teaches Embedded development at the University but writes books, share his knowledge on edX and founded a successful medical device company. He should be the rule not the exception.
    2) Fresh grads from other disciplines (Mechanical, Electronics, Mechatronics etc) generally are not interested in programming. However, convergences are happening in different industries where cross disciplines are not just an advantage but a necessary skills for them to secure a job. For these groups, what could best interest them?
    This is not new. With my first degree in Electronics many moons ago in the '90s, I was writing code that was burned on an EEPROM that controlled stepper motors and other devices since that was common in the sounding Industry. Companies try to get the most bang for their buck with incoming Engineers, and to stay relevant these days is vital and the more cross decline the better. If these fresh grads are not interested in learning programming, especially with Electronics and really with Mechatronics, they have chosen the wrong major. Graduating without understanding the industry they are looking to enter I would suspect will make landing a gig much more difficult, if not impossible until they get the skills needed.
  • TerryMulhernTerryMulhern Posts: 3
    edited 2020-04-07 07:42
    Roy Pea wrote: »
    Stephen Cooper, Roy Pea, Shuchi Grover: Factors influencing computer science learning in middle school buy research paper
    How do you enhance programming skills in middle schools? I'm a post graduate student and I would like to work as a CS teacher in a local private school.

    I'm a TA in middle school and we used micro:bit last year. Now, we've got an educational license and approval from parents to use the funding for BlocklyProp Solo and the upcoming projects with Zulama (using the curriculum from Carnegie Mellon).
  • What is not generally understood about programming, even by most programmers, is that it is a language skill. Programming is speaking a foreign language, only instead of talking to humans using weird symbols arranged differently than is usual for you, you are talking to a machine using weird symbols that are arranged differently than is usual for you.

    Talking to computers also involves a lot of math, because computers are very stupid about everything except math. And the math they understand is very particular. 2's-complement binary and finite floating-point math don't act like the math you were taught in high school. They fail in very common and specific ways when you act as if they're natural or real numbers. A long time ago they taught finite math in college CS courses, but around 1990 somebody seems to have decided that wasn't necessary.

    While modern computers are amazing compared to those that existed even N years ago, they are still finite and it is important to understand what you are asking them to do and whether that might be consuming all their resources. Another thing that was popular around 1990 was the idea to "never optimize" your code because it was a waste of your time to spend expensive labor shaving needs for the ever-expanding resource of memory and processor power. That was an extremely stupid trend and I still see echoes of it today. You need to understand how the machine works and what its limits are. If you don't, you will be a shitty programmer no matter how well you understand its language. It doesn't matter how perfectly I express my desire for a tractor trailer to go 300 miles per hour if that isn't within its physical capacity to perform. This is a thing all programmers who learned before 1990 or so knew by experience, but which since then many have been trained to pretend isn't ever a problem.

    One thing I like about BASIC stamps is that they force you to understand the finite limits of the system. This is a thing woefully few programmers seem to understand today.
  • kwinnkwinn Posts: 8,697
    localroger wrote: »
    .........Another thing that was popular around 1990 was the idea to "never optimize" your code because it was a waste of your time to spend expensive labor shaving needs for the ever-expanding resource of memory and processor power. That was an extremely stupid trend

    One thing I like about BASIC stamps is that they force you to understand the finite limits of the system. This is a thing woefully few programmers seem to understand today.

    +1 ... Never optimizing code was an idea that offended my sense of what good code should be. That's probably why I preferred working with microcontrollers and assembly language.
Sign In or Register to comment.