5
$\begingroup$

Last week, 4 students from another college approached me with a scenario. They have a year of college left in them. That means, they will be occupied with all sorts of final year things that may and most possibly help with their career.

Now, they want me to help them earn some skills. Something that might help them land some kind of employment. I have seen other posts on the site about the languages taught in the beginning and so on, but these students are not exactly beginners. They have finished 6 semesters and have a half baked idea and some exposure to languages such as C, C++ and Java, and may be even some dot net and Linux. However, nothing is employment worthy.

So, now, I have some decision making to do. What do you ask them (and of course, guide them) to learn? Here are my options (and feel free add yours)

  1. Essential Web - HTML, CSS, Javascript and jQuery. - This is something that is a basic requirement for a lot of jobs where I live. I also believe this is something anybody can learn, even if they are short on time.
  2. Java (with Android) - Learn to build an app. Android is pretty straight forward, and does not really require a thorough knowledge of Java itself.
  3. Dot Net with C# - Tougher to learn, they may just run away with the complexity involved.

So, I am partial to Essential Web because of the simplicity involved both in terms of time, and also cost. A very basic laptop (perhaps even a used one) is good enough to get them started.

Still, what should I do?

$\endgroup$
  • $\begingroup$ I don't quite get it. How is this flagged as a broad question? Its a very specific scenario I am facing, and this is something that happens to almost every department and every faculty. I even narrowed down the solutions so it will be easier for folks to help me out. I cannot get any more specific than that. I am an educator and this is a real challenge I am facing. Some careers are literally at stake here, and a wrong call from me will have long term consequences. Hence, the question. $\endgroup$ – Jay Aug 27 '17 at 7:59
  • 1
    $\begingroup$ I would suggest to change its title - it feels from homepage that this question is about latecomers in class. $\endgroup$ – Failed Scientist Aug 27 '17 at 12:26
  • $\begingroup$ I cannot think of anything better than that. They are late to their 'career preparation' is what I am trying to imply. If someone can suggest a better title (or better yet, edit it in) that would be great. $\endgroup$ – Jay Aug 27 '17 at 12:35
  • 4
    $\begingroup$ So if I understand it right, that college offers a 4 year CS course that does not end up with anything making employment likely? Could you add more details on how that can be (age, course content...)? Frankly, as someone reviewing applications on a regular basis, I don't even look so much at their study related things; I look for items that show their interest in the subject. People who are really into it usually find ways to express that (side projects, hacking stuff together in the basement, coding something cool, etc.). But it has to come from themselves, not from yet another teacher... $\endgroup$ – AnoE Aug 27 '17 at 23:20
  • 1
    $\begingroup$ That is the real challenge here. These students (and by extension many - and there are many more from where they come from) did not show any interest. Now, a sudden realisation that they will soon be out of their homes and branded 'unemployed' is forcing them to take drastic measures. Its tragic but I have seen this happen every year. $\endgroup$ – Jay Aug 28 '17 at 3:02
2
$\begingroup$

My opinion is that Essential Web is the way to go in this specific situation.


1. It is clearly employable.

I'm inferring from the post that at least one of the motivations of the students in question is to be as employable as possible. When I look at the 3 options presented, I feel like Essential Web is the most generally employable. Also, while I haven't looked at the data, I would hazard a guess that web development is very safely high in demand in the current job market (assuming we are talking about North America).

2. Of the 3, it is most likely the fastest to get something tangibly impressive running.

Android development and (though less so) .NET require a fair bit of proprietary setup. For Essential Web, all you actually need is a text editor and a web browser, both things that these students likely have and understand. I feel like Essential Web is the fastest to dive straight into learning the concepts and making something that they can be proud of, and add to their githubs/portfolios.

3. There is previous familiarity.

It is incredibly likely that these students have used the web their entire lives. They likely know at least a few of the basic concepts without even realising it. For someone brand new to all 3, I think the familiarity with Essential Web in particular will really help them to grasp the new, more advanced topics more quickly.


Of course, this is based off of previous comments that they don't really have a previous passion and the time is ticking. In this scenario, I would want to give them the fastest and easiest to teach option that is employable to boot. If time was not a factor, my approach would really be to throw them a few introductions to a few popular technologies and see which one they are most partial to. As it stands in this circumstance though, my opinion is that Essential Web is the best option.

$\endgroup$
  • 1
    $\begingroup$ I am talking about India, but the situation is the same. In the last 2 years, I have worked on a 4 major projects, each of them had a significant web component. I also have a habit of informally walking around the client location, and asking people what they are upto. web development skills are in demand, if not high paying. $\endgroup$ – Jay Aug 29 '17 at 3:01
  • $\begingroup$ I have a question a bit off topic, but for web projects won't you need to have some experience with design? $\endgroup$ – Safirah Aug 29 '17 at 12:10
  • 1
    $\begingroup$ @Safirah it depends on the team. I've worked two different co-ops with some web component, and only in one did I specifically need to know basic design concepts. It is possible to be entirely isolated from design in a web project, especially if the Back End is a heavy part of the project. But that's another advantage of showing the students the essential web components; it is likely they will naturally gravitate more to design or more to backend, but both are employable and have just as much place on a team. $\endgroup$ – RageCage Aug 29 '17 at 13:00
  • 1
    $\begingroup$ you would need experience with design, but the design is usually given by someone else, or it can be done by someone else. The web development skills in this context would be the interactions and the things that can called and so on. $\endgroup$ – Jay Aug 29 '17 at 13:01
10
$\begingroup$

The kinds of things suggested in your question and many similar things won't help them. Learning some other "tool" or "language" or "technique" at a beginners level will still leave them with just a bunch of tools they don't really know how to use.

Instead give them a project - preferably a hard project - in which they can use what they have learned, but which also likely forces them to learn at least one new thing. Moreover, if their goal is employment, make it a team project so that they get the experience of working closely with others.

If you can make it a real project, not just an academic exercise, all the better.

Also, make them use some proven methodology, not just hack together a solution. My suggestion would be Extreme Programming, since it is completely defined and has good personal practices within it. It would give them good guidance for a first such project. Scrum, being a bit more general might leave them without the guidance they need, hour to hour.

$\endgroup$
  • 2
    $\begingroup$ You could find a real Free Software / Open Source project to contribute to. $\endgroup$ – ctrl-alt-delor Aug 27 '17 at 11:43
  • 1
    $\begingroup$ I was thinking of making them work solo, but a team project might be better...good I will keep that in mind. These students stay together anyway...I did not factor the significance of that. $\endgroup$ – Jay Aug 27 '17 at 12:38
  • 2
    $\begingroup$ My university actually required students to take a course that fits your description to a T before they were allowed to get their CS degrees. Perhaps the OP's school already offers such a class? If so, and if the class is run well, the best thing might be for the students to really do their best in that class, not to impress the teacher, but to get as much out of the experience as they can for themselves. $\endgroup$ – Kevin Aug 28 '17 at 22:29
5
$\begingroup$

Look at their skills, look at their passion.

It they have passion for something, then they will do much better. This passion can not be based on, I think there is money in this.

  • If their passion is Free Software, or systems administration: Then Gnu/Linux.

  • If it is web design, aesthetics, user interaction: Then web design.

  • If it is mobile gaming, or other mobile apps: Then Java/Android.

  • Also consider Embedded systems, there are more programmers programming Embedded processors, than servers + desktops + probably mobile.

Functional programming will be a big thing in the future, and teaches a lot of useful skills.

I like couchdb: functional, web, javascript, database, no-sql.

Then combine passion with a projects (see @Buffy's answer).


If leaning Object orientated, then I believe that learning Eiffel first is quicker. [This is not based on my teaching experience, it is based on a claim of Bertren Myers. Any my experience as a programmer. When I learnt Eiffel I realised that I did not know C++, then I knew C++.]

$\endgroup$
  • $\begingroup$ At this point, they are pretty much independent of passion. Its like they are adrift at sea. They are not asking for pizza anymore but just drinking water. So, passion no passion, they got to do it because the clock is ticking for them (their words, not mine). $\endgroup$ – Jay Aug 27 '17 at 10:14
  • $\begingroup$ Talk to them, find out what they could get passion for. There is some rely cool stuff that they could learn. I like Gnu/Linux I learnt it in 1991, it is still current, and not-waiting for the others to catch up. It is like there has been no real advancement in software since the 1960s. $\endgroup$ – ctrl-alt-delor Aug 27 '17 at 11:41
  • 1
    $\begingroup$ Passion may no longer matter to them, but I have scheduled a discussion with them in exactly a week from. I am looking to gather as many views/thoughts/opinions as I can here and see where that takes me. $\endgroup$ – Jay Aug 27 '17 at 12:31
2
$\begingroup$

Off course it is a broad question and depends totally on the:

  1. Student's Interest
  2. Student's Aptitude
  3. Checking whether that tool/domain has some scope - Say someone wants to work in VB, then I would have really think about it. This survey can serve as a good measure but a word of precaution is needed to check the demography of participants to compare it with your local market as well.

Now I would talk on general terms, @Buffy has a good idea of giving them projects. I like it but I would like to add little bit more: A complete/successful project doesn't always guarantee that a student has covered all the basics of even OOP (assuming he develops project in an OO language/paradigm) or SQL, etc. (I am coming from a Pakistani background where OOP and SQL still have lion's share in market, this suggestion may vary depending upon the industry you have)

I think if I were to give any student a suggestion, it would be to firstly cover OOP and SQL properly and then complement it by project

I agree that now SW industry has much more technologies and not everyone gets away with such a luck, but my experience still tells me that OOP/basic algorithm development and SQL are almost necessary for lot of jobs. So my conclusion is, both OOP, SQL, etc. (Theory) and Project (Practical) are necessary for you even if you are Final year student and water has reached near your throat.

P.S: @ctrl-alt-delor's answer has a detailed analysis of technologies road-maps and I would like to refer to it for choosing a specific tool(s).

$\endgroup$
  • $\begingroup$ I have already narrowed it down. there is no time to sit and discuss with them what they are passionate or what they want in life or any of that. Like I have said above, folks who are essentially looking up to me to take the call. So, the above answer won't really help me. I want to know, which of the above, or something similar I can do with them. We must assume here that the students will essentially listen to whatever I decide for them. Their input is essentially nil here. Hence the title, Late Comers. $\endgroup$ – Jay Aug 27 '17 at 12:30
  • $\begingroup$ @Jay Thanks! I think my answer is invalid in this context then. $\endgroup$ – Failed Scientist Aug 27 '17 at 12:32
  • 1
    $\begingroup$ Its not invalid (you will notice that I haven't flagged or down voted it) but more like, I liked the last part but not the rest (so, may be you can edit your answer to be more specific). You are right. I will see about taking them through a OOP crash course and SQL with a practical project. $\endgroup$ – Jay Aug 27 '17 at 12:37
2
$\begingroup$
  1. Essential Web - HTML, CSS, Javascript and jQuery. - This is something that is a basic requirement for a lot of jobs where I live. I also believe this is something anybody can learn, even if they are short on time.
  2. Java (with Android) - Learn to build an app. Android is pretty straight forward, and does not really require a thorough knowledge of Java itself.
  3. C # with Dot Net - Tougher to learn, they may just run away with the complexity involved.

On the basis of my industry experience, which includes all of the above, I opine that option 3 is the easiest, not the hardest. This comes with the caveat that by "C# with Dot Net" (which I think should really be ".Net with C#") you may actually mean a set of specific APIs which are hard to learn.

However, there is another consideration. A little knowledge is a dangerous thing. There are enough subtopics of web security to make an entire course; but if you take the .Net/C# option then there are ways to steer it which will support an accompanying project which isn't a Swiss cheese of security holes. E,g, the accompanying project goal could be a WPF application which consumes a third party public REST service, and the relevant security issues will come up in relation to the (hopefully securely designed and implemented) third party service.

$\endgroup$
  • $\begingroup$ I agree. I find C# even easier than Python $\endgroup$ – Failed Scientist Aug 28 '17 at 9:12
  • $\begingroup$ the new kids, they don't find dot net easy at all. You and I (given how many years we have been in this work) may do. The young ones, they just don't man. I don't know why. And yeah, little knowledge is dangerous, but none is disastrous. $\endgroup$ – Jay Aug 28 '17 at 10:06
1
$\begingroup$

tl;dr: Encourage them to start putting together their own personal portfolio webpages.

Tell them to create a webpage that showcases projects they've worked on. Don't know how to create a webpage? Now is a perfect time to learn!

Then build from there. Was there a project they were particularly interested in? Expand on that, make improvements, make it interesting for real people to use, then put a link to it on their portfolio. Is there a topic they'd like to learn more about? Great, use that as an excuse to add a project to your portfolio webpage.

If they only have a year of school left, then they shouldn't need a lot of hands-on help from you. You shouldn't be the one dictating what they explore or learn more about. They should.

Creating a portfolio webpage is helpful for two reasons:

  • It gives you an excuse to explore various topics. "I want to create project xyz using machine learning" is a lot easier than "I want to learn more about machine learning."
  • It gives you something to put on your resume. "I created project xyz using Android, here is a link to download the app" is a lot more convincing than "I learned about Android."
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.