Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×

Comment I'll let you know when I've met one... (Score 1) 214

I have yet to meet a really competent programmer. I don't consider myself much beyond capable - but I have too many flaws in my output to be considered really brilliant.

I have worked with or dealt with the output of other programmers who's performance was egregious - most egregious was the contractor who's naive use of a commercial java framework managed to produce the effect of a memory leak in java (e.g. hamstrung java's built-in garbage collection mechanism).

Experience has taught me practical measures of quality programmers in no particular order:

1. They must know how to program at the most simple level (e.g. competency in structured programming in C would be a good starting point - a basic understanding of LISP programming a plus) before tackling more complex programming tasks. I get the sense there are a lot of cut-and-paste programmers out there who really don't understand what the underlying code they are creating is actually doing.

2. Have an innate ability to focus on simple solutions, rather than being clever. KISS principle must be understood and brought into every design decision from the start. That is not to say there are no complexities, but understanding what is simple given the problem at hand - some simple things are complex when compared to other systems - and having the ability to avoid needless complexity.

3. Literate - must be able to not only communicate effectively externally - but also their comments in code should illuminate the subject matter in a clear, concise manner. Ideally should be able to get workable technical documentation straight from their comments - via doxygen or the like (perldoc, pydoc etc).

4. Their code must be maintainable and extendable. If an average programmer cannot maintain the code, and is required to rewrite the system from scratch - then you have failed as a quality programmer. Change is inevitable - how resilient your system is to change is a measure of your ability as a programmer.

5. They must understand a lot about technology outside of the world of their application. Their application will live in a world of networks, machines (physical and virtual), storage systems, communication protocols, and APIs - they must understand the implications of software design choices given a set of environmental requirements. The best programmers not only know how to code up systems, but also how to give advice about what their systems will be capable of doing given the environment, or lack thereof - and act upon that if it is possible to adjust via changes to software alone (e.g. choosing multithreading/multiprogramming design over single thread of execution).

6. They must be able to create secure code. If the company they work for doesn't produce a guide to that, then they should develop that on their own - and live by it - and consistently improve it. If they are using frameworks/libraries written by someone else, they should audit or test it to be sure the underlying implementation is secure.

7. Must be able to get along with others and work as part of a team; ideally if they are really a quality programmer, I would expect them to also mentor and share their ideals and capabilities with their peers to bring everyone up as much as possible. Quality programmers are not primadonnas.

That's it from my standpoint.

Comment Re:Why program in Python (Score 1) 277

P.S. I would have thought your statements more appropriate to Perl than Python:

I came to python after using perl for over 10 years - and have never looked back. Hands down it can do everything perl can do - while providing clear, readable code that is consistent from one developer to the next...you have to really dig down into the bowls of python to create anything that would make me scratch my head - whereas that is trivial to accomplish with perl - and was the cause of many headaches over the years when needing to work with multiple developers' code. I debugged my last hanging curly brace/missing semicolon long ago.

Comment Re:Why program in Python (Score 1) 277

What versions are you using, and what features are broken between them that you are complaining about? 3.0 was clearly a departure from the 2.X versions - and that is well known; if you have code that needs 2.X, you can stick with that until it makes sense to transition/migrate your code to 3.0. Right now I'm using 2.6/2.7 - and it is solid as a rock, so I'm not sure what you're complaining about; no one is forcing you to upgrade versions if you don't want/need to, right?

Comment Re:Say no, nobody listens... (Score 1) 186

Or worse: they simply bypass you:

A: We need your widget X to be modified to produce wingnut Y by March.

B: I can't commit to that now; I need to work up the design and give you a good estimate.

A: Never mind. We'll go with Team C and their widget Z - they assure us they can have it done well before March (the implication being they are more responsive/better than us - never mind that the new widget isn't integrated with our network or systems - and they are going to need us to do the integration work anyway because they know nothing about the systems etc..)

At this point the PMs and Program Managers break into song:

I want a feast I want a bean feast Cream buns and doughnuts and fruitcake with no nuts so good you could go nuts. No, now! I want a ball I want a party Pink macaroons and a million balloons and performing baboons and Give it to me now. I want the world, I want the whole world. I want to lock it all up in my pocket It's my bar of chocolate Give it to me now! I want today I want tomorrow I want to wear them like braids in my hair and I don't want to share them I want a party with roomfuls of laughter Ten thousand ton of ice cream And if I don't get the things I am after I'm going to scream! I want the works, I want the whole works! Presents and prizes and sweets and surprises in all shapes and sizes, And now! Don't care how I want it now! Don't care how I want it now!

Comment Re:Constant Planning (Score 1) 186

From what I've learned in the last three companies I worked for that used agile, agile means that an ungodly amount of time is spent in meetings and constant, meaningless record-keeping. God, I hate agile. It gets in the way of doing good, timely work.

They should probably start off by reading the Agile Manifesto...where it talks about the values of agile development - one of which is to value Working software over comprehensive documentation. Sounds like they have the wrong focus.

Mediocrity is not uncommon, and there are way too many people in the development end of things that shouldn't be. I've been dealing with these clowns for almost 20 years now - and this very topic is what is driving me to retire early and do something else with my time, instead of the endless death marches to nowhere.

Comment Fork Linus? (Score 1) 267

But fleeing from Linux to BSD doesn't solve the problem, that's just running away from it. If the major BSD distros decided to incorporate a systemd-like system then what?

Then it will be time to fork Linus...

J/K

However, maybe someone should give the Linux POSIX APIs some loving - and implement a new improved non-systemd distro, and add good support for features/apps that were lost in the 'Great Systemd Landrush of 2014' (basically fork projects that decide only to support systemd - if they are something we gotta have on BSD and Linux).

The one thing I think we can depend upon is the Linux Kernel itself...everything else is questionable given limited resources; if you care about having a given feature that is threatened - put your money/sweat where your mouth is - and support it.

Comment Re:Which way are the bits going? (Score 1) 97

Who is going to pay for all of that fiber - and associated changes to the network to allow it to go the last mile (so far, the only fiber we've seen to the home is in very small enclaves of people who can afford premium services anyway)?

If you believe that should reside in the corporate realm, then how do you as a corporation turn a profit while also investing in a universal fiber network?

If you believe it should be in the government realm - how do you get politicians to support fund allocations for it - and who does the money go to (municipalities, the aforementioned corporations, someone else)?

Comment Re:What system d really is (Score 3, Insightful) 928

For those who think SysVinit style init systems is what Linux should be using the next 30 years, there is Slackware. It is a nice general purpose distro that is very traditional. So nobody is forced to use systemd if they don't want to.

Until some key functionality used by people is no longer available in that distro due to decisions made upstream to no longer support the code base, or other dependencies.

If I use KDE - which I do - then packages for that become unavailable at some point in Slackware given the above. That means I will be forced to use systemd if I want to continue using KDE; which also means I will have to change distributions, assuming Slackware remains systemd free, as well.

Not trivial. Not easy. Not freedom of choice.

It simply solve a lot of real world problems and makes life easier for both upstream developers, distro makers and end users.

That is simply a lie.

Slashdot Top Deals

Beware of Programmers who carry screwdrivers. -- Leonard Brandwein

Working...