How can you tell if a programmer is good or not? - Overclock.net - An Overclocking Community
Forum Jump: 

How can you tell if a programmer is good or not?

 
Thread Tools
post #1 of 10 (permalink) Old 11-20-2019, 08:00 AM - Thread Starter
New to Overclock.net
 
Mrzev's Avatar
 
Join Date: Feb 2008
Location: Texas
Posts: 2,298
Rep: 96 (Unique: 76)
How can you tell if a programmer is good or not?

I am a software dev with 10+ years, and I really dont know how to answer this. I look at other peoples code and feel envious, but they feel the same about my code too. So, when I was looking for a job, when i was asked how good of a developer i was, I really didnt know how to answer it. Being good or bad at something is relative to others. My vision can be 20:300 , but when everyone around me is blind, my vision is good. So how do you compare yourself to average? I also have high expectations, but once again thats a relative term based on a relative value... Ughhhhh.. Then there is skills in different areas... I suck at java, but i can get by. I have never written in GO , but i can learn fast... sooo? Is it a combination of experiences in areas that match yours? In a job interview is it what aligns with their current projects?

1. How do you know if your a good or bad programmer?
2. How do you know that other person is a good programmer.



Mrzev is offline  
Sponsored Links
Advertisement
 
post #2 of 10 (permalink) Old 11-20-2019, 08:16 AM
9 Cans of Ravioli
 
The Pook's Avatar
 
Join Date: May 2006
Posts: 17,559
Rep: 1248 (Unique: 682)
Quote:
when i was asked how good of a developer i was, I really didnt know how to answer it

the answer to that question is you are a good developer, lol.

protip: if you're interviewing for a job where you would do x thing everyday if you were hired, don't say you're not good at x thing

Intel i9 9900K Coffee Lake @ X8 5309mhz (+47.5%)
AMD FX-8320 Vishera @ X4 5022mhz (+43.5%)
Intel i5 4690K Haswell @ X4 5013mhz (+43.2%)
AMD X4 960T Zosma @ X6 4870mhz (+62.3%)
Intel i7 6700 Skylake @ X4 4709mhz (+38.5%)
Intel i5 6400 Skylake @ X4 4588mhz (+69.9%)
2 OP pls nerf
(24 items)
NUC U
(10 items)
CPU
i9 9900K
Motherboard
AsRock Z390 Taichi
GPU
MSI GTX 1080 Ti
RAM
G.Skill DDR4 4133 32GB
Hard Drive
Mushkin Pilot NVMe 1TB
Hard Drive
HP EX950 NVMe 2TB
Hard Drive
Samsung 860 Evo 1TB
Hard Drive
Toshiba X300 5TB
Hard Drive
Western Digital EZRZ 3TB
Power Supply
Seasonic Focus Plus Gold 750w
Cooling
Corsair H115i Pro
Cooling
Raijintek Morpheus II
Case
Fractal Design Meshify S2
Operating System
Windows 10 Education x64
Monitor
Acer XF270HU 27" 1440p
Monitor
LG 24UD58 24" 4K
Keyboard
CoolerMaster MasterKeys Pro S
Mouse
Logitech G502
Mouse
Glorious Model D
Audio
SMSL SA50 + FiiO E10K
Audio
Micca RB42
Audio
Philips Fidelio X2
Audio
Philips SHP9500S
Audio
Audio Technica ATH-M50X
CPU
i3 8109U
Motherboard
Intel NUC8i3BEH
GPU
Iris Plus 655
RAM
Kingston 8GB DDR4 2400
Hard Drive
Dierka K1 120GB
Hard Drive
ADATA SU800 128GB M.2
Operating System
Windows 10 Professional
Operating System
MX Linux
Keyboard
Dierya DK63-BT 60% (Outemu Blue)
Mouse
Logitech G603 Wireless
CPU
i7 860
Motherboard
Advantech AIMB 280 ITX
GPU
EVGA GTX 950 2GB
RAM
Kingston 2GB DDR3 1333
Hard Drive
Seagate Momentus 2.5" 500GB
Hard Drive
Western Digital Blue 2.5" 320GB
Power Supply
Silverstone SFX-L Gold 500w
Cooling
Arctic Alpine 11 GT 2
Case
Silverstone Milo Z ML07B
Operating System
Windows XP x86 SP3
Keyboard
Velocifire TKL01 Outemu Browns
Mouse
Logitech M512
▲ hide details ▲


The Pook is offline  
post #3 of 10 (permalink) Old 11-20-2019, 08:48 AM
CS+EE Alumnus
 
HybridCore's Avatar
 
Join Date: Jan 2011
Posts: 10,279
Rep: 208 (Unique: 168)
I feel like there's 3 parts to it: how good they are at designing algorithms, how proficient they are at the language or environment, and how good of a collaborator they are.

1. They're constantly thinking about things in terms of runtime complexities. There's a lot of people who will just slap together some poorly written code in terms of runtime complexity and just hand it off to you without trying to fix it. Usually people should just take some time, sit back, and unravel the problem to think of the more general sequence of operations they need to be doing. If they aren't doing this (unless it's for a really textbook case), there's a good chance they might miss very efficient approaches to tackling the problem.

2. This one just comes from experience in working with the language. I think this is far less important than 1 but there are certain optimizations or shorthands you can do to perform certain operations more efficiently. Things like list comprehensions in Python, ternary operators, bit shifting on integers for dividing or multiplying by a power of 2, using certain fill constructors instead of manually looping through to fill, etc. It's not strictly necessary but can greatly save time, increase readability, and potentially add some performance.

3. Good comments and clear communication! Unless the code you're writing is never going to be seen by anybody except yourself, other people who take up the torch down the road will probably have a hard time understanding it. We don't work in isolated vacuums and it's pretty inefficient to do so for medium to large scale codebases. It's especially useful for helping onboard people new to the language who may not be aware of some of the shorthands or optimizations a certain programming language can make (like the ones mentioned in 2).

For 1, sometimes you will accept slower runtime complexities just because even if it's efficient in terms of Big O, it might actually be slower than another algorithm with a less efficient Big O complexity in smaller inputs. There's a lot of sorting algorithms that are like this.

Last edited by HybridCore; 11-20-2019 at 09:00 AM.
HybridCore is offline  
Sponsored Links
Advertisement
 
post #4 of 10 (permalink) Old 12-03-2019, 01:23 PM - Thread Starter
New to Overclock.net
 
Mrzev's Avatar
 
Join Date: Feb 2008
Location: Texas
Posts: 2,298
Rep: 96 (Unique: 76)
I think I also overlooked the aspect of forward thinking. So, I am looking at this code and its a mess, the database, the model, the controller, and the page all hacked together. Some cool stuff was done, but its a confusing mess that works poorly. I know the situation was, they asked for X, so he added X. They asked for Y, so he added Y. 1 Year later, its just patches on patches of stuff. What this developer lacked was asking the right questions in regards to designing for the future. How things are going to interact. What is going to be built upon.

I know i am a good programmer, my post was wondering the reasoning behind it.



Mrzev is offline  
post #5 of 10 (permalink) Old 12-03-2019, 01:31 PM
New to Overclock.net
 
skupples's Avatar
 
Join Date: Apr 2012
Location: Fort Lauderdale
Posts: 21,869
Rep: 630 (Unique: 342)
sounds like every piece of propreitary system/software I've used at every corporate gig i've worked at outside of the actual tech sector.

I was just discussing this with my boss. Some of our dev managers, and specifically the development director could be (are) absolute conmen, and the organization would never know as long as the project "works". Why? Because we're not a technology entity, as much as we pretend to be. We're an insurance entity that pays people to implement replacement/automation technology. No one outside of dev knows what any of this actually is(aside from audit). The old white dudes set goals and expectations, devs try to under deliver as much as humanly possible without getting fired. AND THE CYCLE IS COMPLETE!

remember that what you do is wizardry for anyone outside of dev, even the IT bros setting up your servers, etc (like me! )

R.I.P. Zawarudo, may you OC angels' wings in heaven.
If something appears too good to be true, it probably is.
skupples is offline  
post #6 of 10 (permalink) Old 12-03-2019, 05:41 PM
Senioritis Member
 
Lady Fitzgerald's Avatar
 
Join Date: Apr 2013
Location: AZ, SSA (Squabbling States of America)
Posts: 8,268
Rep: 526 (Unique: 330)
Just check to see how good the error trapping is. There are a lot of programmers nowadays who skimp on error trapping (a pet peeve of mine because it usually results in inaccurate error messages).

Jeannie
CPU
i7-3930k
Motherboard
ASUS P9X79 WS
GPU
MSI R7850 Twin Frozr 2GD5/OC Radeon HD 7850 2GB 256-bit GDDR5 PCI Express 3.0 x16 HDCP Ready CrossFireX Support Video Card
GPU
Monoprice 1x2 powered HDMI Splitter
RAM
Kingston HyperX 32GB (8 x 4GB) 240-Pin DDR3 SDRAM DDR3 1600 (PC3 12800) Desktop Memory Model KHX1600C9D3K8/32GX
Hard Drive
128GB Samsung 840 Pro SSD
Hard Drive
4TB Samsung 850 EVO SSD
Hard Drive
4TB Samsung 850 EVO SSD
Hard Drive
4TB Samsung 850 EVO SSD
Hard Drive
4TB Samsung 850 EVO SSD
Optical Drive
LG 12X BD-ROM 16X DVD-ROM 48X CD-ROM SATA Internal Blu-ray Drive CH12LS28
Power Supply
Corsair HX750W
Cooling
COOLER MASTER GeminII S524 120mm Long Life Sleeve CPU Cooler
Case
Antec Two Hundred v2
Operating System
Windows 7 Ultimate
Monitor
3 x Asus VG248QE
Monitor
Vizio VO320E 32" TV
Keyboard
Logitech G510s
Mouse
Logitech M525 with Unifying Receiving
Audio
Corsair SP2500 2.1 Speakers
Audio
ASUS Xonar Essence STX Virtual 7.1 Channels 24-bit 192KHz PCI Express x1 Interface 124 dB SNR / Headphone AMP Card
Other
LSI 9211-8i HBA card
Other
HooToo® HT-CR001 3.5" PCI-E to USB 3.0 Multi-in-One Front Panel Internal Card Reader (6 Memory Slots, Genesys GL3220 Chipset) & SuperSpeed USB 3.0 3-Port Hub (VIA VL800 Chipset), can read & write: M2/MS Micro, High-Speed CF(UDMA), UHS-I, SD, SDHC,...
Other
StarTech HSB220SAT25B 2 Drive 2.5in Trayless Hot Swap SATA Mobile Rack Backplane
CPU
i7-5930K Haswell-e
Motherboard
Asus X99-E WS/USB 3.1
GPU
Visiontek Radeon 7870 2GB with 6 miniDisplayports
RAM
G-Skill Ripjaws 64GB (8x8GB) DDR4 2133
Hard Drive
Samsung 850 EVO 4TB SSDs
Hard Drive
Samsung 950 Pro 512GB m.2 SSD boot drive
Power Supply
Corsair AX760
Cooling
Noctua NH-D15S Cpu cooler
Case
Scratch built. Currently under construction at https://www.overclock.net/t/1602023/preparing-for-a-scratch-built-case
Operating System
Win 7 Ultimate
Mouse
Logitech M525
Mouse
El Cheapo Allsop hard plastic
▲ hide details ▲
Lady Fitzgerald is offline  
post #7 of 10 (permalink) Old 12-03-2019, 06:47 PM
I Love this Hobby!
 
Gunderman456's Avatar
 
Join Date: Oct 2008
Posts: 7,645
Rep: 610 (Unique: 503)
Tighter code and less bugs.

-Guide to 1st Case Modding for Better GPU(s) Performance/Cooling-
https://www.overclock.net/case-mod-wo...ing-guide
-Guide to 2nd Case Modding for Better GPU(s) Performance/Cooling-
https://www.overclock.net/case-mod-wo...e-fan-mod
Fast n' Cheap
(17 items)
Bit'O'Heaven
(16 items)
CPU
RYZEN 7 3700X
Motherboard
ASUS TUF GAMING X570-PLUS
GPU
MSI Radeon RX 5700 XT
RAM
G.SKILL Ripjaws V Series 32GB (2x16GB) DDR4 3600 16-19-19-39 CL 16 1.35V
Hard Drive
Corsair Force Series Gen.4 PCIe MP600 500GB NVMe M.2 SSD
Hard Drive
Seagate BarraCuda ST3000DM008 3TB 7200 RPM 64MB Cache SATA 6.0Gb/s 3.5" HDD
Optical Drive
LG 16X SATA Blu-Ray Internal Rewriter with 3D Playback and M-DISC Support BH16NS40
Power Supply
Fractal Design Ion+ 860P 80 PLUS Platinum Certified 860W Full Modular
Cooling
Noctua NH-D15
Case
Veddha GriderCase alpha V1
Operating System
Win 10 Pro 64bit
Monitor
Nixeus EDG 27" IPS Freesync 1440p 144Hz
Keyboard
Redragon K589 SHRAPNEL RGB Mechanical Keyboard
Mouse
Logitech G502 Hero
Mousepad
ALLSOP Redmond Mouse Pad
Audio
Cambridge Soundworks 5.1
Other
PulseLabz Challenger Gaming Chair
CPU
Intel i7 4770k @ 4.5GHz
Motherboard
Asus Maximus VI Rog Gene
GPU
Gigabyte AMD R9 290 @ Core 1160MHz & Memory 1350MHz
RAM
G.SKILL Trident X DDR3 16GB 2400MHz
Hard Drive
Samsung 840 PRO 256GB
Hard Drive
Seagate Barracuda 7200.14 3TB
Optical Drive
Pioneer Black Blu-ray 16X BD-R 2X BD-RE
Power Supply
EVGA SuperNOVA G2 1300W 80PLUS Gold Fully Modular
Cooling
Corsair H60 Push/Pull
Case
Fractal Design Arc Midi R2
Operating System
Win 7 Pro 64bit
Monitor
Samsung 245BW 24" 1200p 60Hz
Keyboard
Logitech G15
Mouse
Logitech MX518
Mousepad
Corsair Vengeance MM200
Audio
Yamaha HTR-5830 Polk Audio 3.0
CPU
Intel Core i5-3570K @ 4.6GHz
Motherboard
ASRock Z77E-ITX mITX
GPU
Sapphire AMD HD 7990 @ Clock 900MHz & Memory 1100MHz
RAM
G.SKILL Ripjaws X DDR3 8GB 1600MHz @ 1866MHz
Hard Drive
Crucial SSD CT128M4SSD3 128GB mSATA SATA III 6GB
Hard Drive
Seagate Barracuda HDD 1TB
Optical Drive
LG DVD R/W
Power Supply
Corsair Professional Series Gold AX850 Fully Modular
Cooling
Corsair Cooling Hydro Series H100
Case
BitFenix Prodigy Mini-ATX Black Case
Operating System
Win 7 Pro 64bit
Monitor
Samsung TV 52"
Keyboard
Logitech K330 Wireless
Mouse
Logitech M215 Wireless
Mousepad
Corsair Vengeance MM200
Audio
Yamaha RX-V681 PSB/PolkAudio 5.1
▲ hide details ▲


Gunderman456 is offline  
post #8 of 10 (permalink) Old 12-04-2019, 09:42 AM - Thread Starter
New to Overclock.net
 
Mrzev's Avatar
 
Join Date: Feb 2008
Location: Texas
Posts: 2,298
Rep: 96 (Unique: 76)
Quote: Originally Posted by Lady Fitzgerald View Post
Just check to see how good the error trapping is. There are a lot of programmers nowadays who skimp on error trapping (a pet peeve of mine because it usually results in inaccurate error messages).
Thats why i wrap my whole program in 1 massive try catch... GOOD LUCK CRASHING NOW... just kidding... But that is a good point. Seeing someone use a try catch instead of checking if null prior, or just using a blanket try catch without any exception handling. Yeah, i would agree that would separate the good from the bad with a subtle thing.



Mrzev is offline  
post #9 of 10 (permalink) Old 12-04-2019, 11:25 AM
Overclocker
 
JackCY's Avatar
 
Join Date: Jun 2014
Posts: 10,359
Rep: 346 (Unique: 244)
You can't unless you give them work and you review that work. I don't mean code on stupid paper for 10min like most interviewers do, but give them work for a month, some project, etc. to do the job and then review.
This difference between people is very easy to see at University where everyone has to do the same thing but the results vary wildly in performance, readability, bugs, reusability. Most people just do the bare minimum to pass and this for sure translates into their work ethic too.

There are people who are good at memorizing rubbish and writing memorized crap on paper and then there are other who suck at this but excel at problem solving, designing and writing fast readable code on a computer.

In the end it seems most companies are looking for coding monkeys with a knowledge of some language to implement/code, not to be programmers, developers, to solve anything, to think, nope, just code.

Error handling, for sure, the lazy ones don't bother or even realize that something could go wrong.
I've had a test image to feed a program that many people implemented, this test image was larger and more random than what most people would bother to think of... as a result two of us could process the image in around 1 second, others would take days, weeks, months or outright crash because they ran out of RAM etc.

1) you can only know where you lie on the spectrum by comparing yourself to others in different areas
2) by comparing the other person's results

Most of the optimizations mentioned are pointless unless you test performance in specific language and implementation as often the compilers nowadays are not what they used to be in 80s, 90s and do a lot of optimizations on their own and your "clever" optimizations may actually work against it and make less readable/understandable code. Divide by 2 using bit shifting? Why? What compiler does not optimize this for you to the same fastest code?
JackCY is offline  
post #10 of 10 (permalink) Old 12-04-2019, 06:20 PM - Thread Starter
New to Overclock.net
 
Mrzev's Avatar
 
Join Date: Feb 2008
Location: Texas
Posts: 2,298
Rep: 96 (Unique: 76)
Quote: Originally Posted by JackCY View Post
There are people who are good at memorizing rubbish and writing memorized crap on paper and then there are other who suck at this but excel at problem solving, designing and writing fast readable code on a computer.

In the end it seems most companies are looking for coding monkeys with a knowledge of some language to implement/code, not to be programmers, developers, to solve anything, to think, nope, just code.
My first job as a software dev my mind blanked out one day and i forgot what a while loop was called or something basic like that. I was describing it to one of the other newer developers and he said to just use GoTo. Even I knew that was wrong... needless to say, he wasn't there for long. Managers and software architects were telling me that he interviewed amazingly, and they were surprised too. From my experience at this new job, i am afraid to work for a new group that has never done software dev before.



While driving home today i came to the realization of the difference between a Entry level, Standard, and Sr Developer.

You can rely on a Sr Developer to get whatever done with a good design.
A standard developer on their own can get it done, but with an unknown quality of design.
Entry level you cant trust to get the thing done at all.

I guess its hard to tell because a single Sr Dev in the group can give direction to Entry level so that they can get the thing done, and the standard dev will end up with a good design. 2 Sr Devs will end up with a great design.

The nonsense i am dealing with at my job its clear that the original dev is above entry level because the project works... but its very obvious that he is not a Sr Dev because of how bad the design is. He knows its bad, but he never had the time to fix it. IMO a Sr Dev would never ended up with the terrible design because we know what questions to ask and how to approach unknowns... or that you take the time to refactor it then and not skip it trying to get more work done.



Mrzev is offline  
Reply

Quick Reply
Message:
Options

Register Now

In order to be able to post messages on the Overclock.net - An Overclocking Community forums, you must first register.
Please enter your desired user name, your email address and other required details in the form below.
User Name:
If you do not want to register, fill this field only and the name will be used as user name for your post.
Password
Please enter a password for your user account. Note that passwords are case-sensitive.
Password:
Confirm Password:
Email Address
Please enter a valid email address for yourself.
Email Address:

Log-in



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Show Printable Version Show Printable Version
Email this Page Email this Page


Forum Jump: 

Posting Rules  
You may post new threads
You may post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off