Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×

Comment What they are doing right and doing wrong (Score 1) 131

Here's where the rubber meets the road. Beyond the code not working at all, or having redundant/unnecessary code, exactly what should they expect as feedback? Yes, there are a few algorithm patterns and idiomatic usages that are standard for every language, but there's always More Than One Way To Do It, and how consistent and high-quality is the feedback going to be? It seems to me this could easily fall into a trap of the barely-sighted leading the blind when you have non-experts assuming the mantle of an authority. There's plenty of bad and/or inconsistent advice out there about programming style. To take a simple example... what feedback would you get about usage of the ternary operator? Many would consider that bad style, period.

Comment Re:Here is how to get in to coding: (Score 2) 240

An important concept in software development is don't duplicate effort. After someone has taught themselves a programming language from a book or sat through a uni course, better to convince people to find an existing project on Github or whatever, fix open bugs or start working on a feature addition that the devs have put on their wish list.

He said learning how to code, not how to develop software. Important distinction. Learning a programming language is like learning how to read. Learning programming itself is like learning basic English composition skills (i.e. write a 5 paragraph essay). It's easy to study, easy to evaluate, and easy to review, and you can focus on the details of syntax, semantics, grammar, and style. The logical analysis, presentation, and cites are important (the start of engineering and reuse, etc), but not the focus. Learning software development/engineering is like learning how to publish a properly annotated, logically argued and presented, and cross-referenced scholarly paper suitable for a journal. It (should be) a foregone conclusion that your syntax, etc. is proper. Now the focus is on consistency, coherency, structure, reuse of existing material, and aesthetics.

Comment No Teachers (Score 1) 293

The real reason there isn't in AP computer science in schools is simple.

Think about most teachers you knew in HS. They probably taught multiple classes, and probably taught at least one main class (a general math, science, history, or language course).

So, you want to add a new computer science class to the curriculum.

Well, you can't hire a programmer or a CS degree holder, for the most part. They make too much money to work part-time.
You can't hire them full time... you only need them for 2 or 3 classes, and the rest of the general classes are handled. Maybe they'll pick up a study hall and a special projects course... but they also get paid less for those courses/periods too.
And you can't find a "normal" teacher that also knows computer science.

I suspect this problem will get easier once we start getting more CS retirees... I would imagine part-time teaching would be an attractive option for side income.

Comment Why not a good ultra-book and a smaller tablet? (Score 1) 316

This seems like it's comparably priced with the X1 Carbon Touch... a good system will run you around $1700 for either option. The main difference is display... the bigger X1 sacrifices resolution. It just seems really expensive for a tablet, and really tiny for a laptop for serious work, it's like it's in an anti-Goldilocks zone.

I'd use this only if I had an awesome docking rig, and really needed a tablet, *and* I needed to be able to swap between the two seamlessly.

Comment Engineers, not Programmers (Score 1) 466

The question isn't about finding programming competence anymore... you can weed out people that can't figure out (or know) a decent algorithm off the top of their head.

The question is a matter of engineering skill: if you can't make an application that's architecturally coherent, properly sanitizes inputs, decomposes functionality, behaves intuitively for the user, anticipates future needs and builds in that flexibility in the API, is easily deployable in your org (or to the client), and all with proper documentation, etc. etc. etc. you are a programmer.

These are all completely different skills than simple programming... it's the difference between wiring a house and designing a fault-tolerant power distribution system that plans for future capacity over 5 states.

We have enough programmers.

We need engineers. It would help if business in general thought of programmers as global data and process engineers, rather than simple wish-fulfillment elves for whatever they want to see on their screen using whatever software their buddy in company X sells.

Comment Depends on your goal... (Score 1) 172

Are you trying to practice basic coding and logic skills?

Project Euler, as many have said, or similar sites.

Are you trying to learn a specific technology?

Then go through a tutorial. Notice anything stupid/wrong/incomplete/ambiguous about that tutorial? If not, please share this unique example of completely flawless information transfer between humans. Otherwise... rewrite it yourself, in your words. Think about other directions the tutorial could have taken. Tinker and experiment.

Are you learning programming to accomplish a specific task?

In that case, you already have your answer. Write what you can. Learn to write the other parts. The code will grow as you grow.

Think about programming like carpentry. If you want to do a carpentry project, you can choose:

1) An design that emphasizes core skills, but isn't particularly useful, although it isn't *useless*. In carpentry, that would be a puzzle box, or a birdhouse, or some other small bauble. The goal was to perfect tool usage, not produce something useful. That's like Project Euler stuff.
2) A design that emphasizes one particular tool, but because of that isn't particularly practical either, and almost completely useless. You know, some complicated, ornate thing that's only meant to really show off a scroll saw, or using a lathe to make a complicated-looking curtain rod. That's like the tutorial option.
3) You build a simple table... even if it's just four 2x4s screwed to a piece of plywood and doesn't even bear loads well. You work up from there... you learn about cross bracing and railing. The screws are ugly, so you learn about countersinking and hole plugs. You might even have to start from scratch, but that's OK... you'll redo everything twice as fast the second time. Then maybe you route the edges of the table when you learn to use a router so you have a nice beveled edge. Then maybe you buy a lathe, and turn the legs of the table into something more fancy... and then you add scrollworked cross-braces... That's a real world project.

All three of these will help you become a better carpenter/programmer, but you will never become a master carpenter/programmer until you do option 3.

Comment Re:A few problems... (Score 1) 149

I'm not sure exactly where he wants to use this... as a new constraint system for a database or something?

Yeah, that's the ticket... stuff more business logic in the database. I have yet to see a system designed by DBAs around stored procedures as "the way all systems should integrate" that was remotely usable.

Databases are not good development platforms.

Slashdot Top Deals

With your bare hands?!?

Working...