I am strugling to find my productivity bottlenecks. I decided I could record a video, so that someone could see how I work and my thinking process.

I know one way to increase productivity is to have experience with something. But often there is tasks which are rarely or first time done. So this time I am trying to optimize symfony application speed in development environment and I took 1 hour but only reduced loading time from 3 seconds to 2.5 seconds or so.

I want to learn getting new information quickly so that I could learn new things quickly and to tasks with them.

This video contains F words, because I got annoyed by things not working, so sorry for that.

Lets imagine at work I got the task like I tried to do now and I havent done it before. Maybe it is still possible to do it faster even if I had not done it before.

Can somebody take a look? Maybe will not need to watch whole video, and maybe some will see imediatly some big problems in my work.

I am trying this way of analisis because I have read lot of articles, even bought a book about programming productivity, but still I think I need to improve it, but do not know how.

https://www.youtube.com/watch?v=zPaoq_T0yUM&feature=youtu.be

Recommended Answers

All 12 Replies

I'm not a Symfony user. But your video with what looks like a dozen plus open apps could be a problem. When I write in Visual Studio or Android Studio, I don't have that many apps open. So there's that.

I watched a bit at https://www.youtube.com/watch?v=HchMW8EhWPU to confirm you don't need that many apps open.

Let me address something (just one thing.) No programmer I know doesn't hit a roadblock. Programming today is not without pauses or as you put it "often there is tasks which are rarely or first time done."

My answer to that is this programmer is not seasoned. That is, they need to keep at it for a few more years.

what looks like a dozen plus open apps could be a problem

why do you think so?

I could get rid of resource manager, but I wanted to take a look at it from time to time, to see what is using my computer resourses.
Another is - skype, but again, what if somebody wants to write me :) especially on non work time. I would understand if I chat at work with skype friends about non work related stuff, then it would be productivity killer.

Another app is keepass - but do I really need to close it? Sometimes I go to some webpage and need a password, so I would not need to open the app each time, I am running it in background. It does not use much resources.

Then there is explorer opoened, 2 windows. Not too much imo.

And some apps near clock, like gyazo, not used when programming but also does not use much resources.

No programmer I know doesn't hit a roadblock. Programming today is not without pauses or as you put it "often there is tasks which are rarely or first time done."

You mean everyone hits a roadblock. I agree. But still it feels like others manage to get tasks done faster even when they do tasks first time with particular technology.

My answer to that is this programmer is not seasoned. That is, they need to keep at it for a few more years.

I did not understand what you mean. Can you rephrase?

I think you want to debate rather than discuss. I could be wrong about that.

When I in my programming "mode" there are few apps up. You note a few but what I saw as a filled taskbar.

-> In regards to others the do tasks first time. Nope, they don't always do tasks first time. They likely just show you the finished work and not all the work or time it took to get there.

As to seasoning, only time will help you. You practice, code, refine your skill and don't go it alone (unless in school.) In fact that's a horrible thing most schools teach. That is, they teach that you code all along on your own. I don't mind as our office using a cooperative model will keep you out of the work force.

I think you want to debate rather than discuss

what is the difference between debate and discuss?

hen I in my programming "mode" there are few apps up. You note a few but what I saw as a filled taskbar.

All were needed for me. Ok - first is chrome. Probably no need to explain.

Another is MingW32 - its command line where I run the php server.

Next is notepad++ editor - I edited code in it.

Next is free countdown timer. This is probalby not used by others, but I like to have timer to know when it is break. I have read about pomodoro technique which increases productivity which says to set timer, work focused, then have a break.

Another is resource manager - as I said to see what is lagging.

Another is xampp - from it I run mysql database.

Another is skype - talked about it.

Next is HeidiSQL - for browsing the database.

Next is keepass - for passwords, talked about it.

Next is chrome developer tools - for debugging.

Couple of next is windows explorer windows. To see my files.

Next is Flashback - recording video program.

Next is PhpStorm - IDE for editing code. Could close it, because was using notepad++, but thought maybe I should use PHPStorm.

So which ones are bad to be open?

Yea, if they do not show all the work and time to get to the finished work, then it can make them look like they have done it faster. Hmm, but are all peple doing it? I think not. At least I know a guy who does not like overtimes, so he usually does not do overtimes and even when there is no boss, he cheats time, like having longer lunch but going home at as if no longer lunch. He had also been doing his own projects at work time (when was earning lower salary but also less years of experience). He said overtimes smth like suck and is afraid to go to some company for higher pay if will need to do overtimes.

I think we are making small progress here. So how about something that really cheesed an new boss I had years ago.

As a test he handed out the same task to about 5 programmers and meaured the keystrokes, LOC (lines of code) and of course time.

Result? All over the map. It didn't make sense to him why one person slayed it in under one hour and the longest time was a few days. Tossing out the high and low it looked better in just under 8 hours of work. But he still had questions.

Yup, we're only human.

From watching the video, I am understanding your question to be

Why does the application load so slowly in the browser?

So, judging from the task manager, I am going to assume you are using a laptop (since it has a dual core processor with 8gb of ram) and that you are running PHP's built in web server (since it is accessing port 8000 on localhost) and you are running MySQL locally. Not looking at your code at all, I would expect some delays in this environment as a laptop, PHP web server are not production suited environments. Have your tried the code and the database on an actual server?

Also, just in case, make sure you are properly indexing your MySQL tables.

As a test he handed out the same task to about 5 programmers and meaured the keystrokes, LOC (lines of code) and of course time.

Result? All over the map. It didn't make sense to him why one person slayed it in under one hour and the longest time was a few days. Tossing out the high and low it looked better in just under 8 hours of work. But he still had questions.

I believe this is perfectly possible. Interesting that he allowed to work for few days for that poor guy.

Yea, so what happened with the guy who took few days to complete the task? Was he fired? Or was this just one task he was not lucky at? Maybe other tasks he usually do at similar speed to colleagues on average. There is luck factor also - how quickly you can find something if it is not trivial. Or if you had similar experience before, you might also be lucky.

From watching the video, I am understanding your question to be

Why does the application load so slowly in the browser?

I was trying to solve such task. But thread question is still - trying to find productivity bottlenecks when working on something first time - this time I was first time optimising symfony application for development environment.

So, judging from the task manager, I am going to assume you are using a laptop (since it has a dual core processor with 8gb of ram) and that you are running PHP's built in web server (since it is accessing port 8000 on localhost) and you are running MySQL locally. Not looking at your code at all, I would expect some delays in this environment as a laptop, PHP web server are not production suited environments. Have your tried the code and the database on an actual server?

Yea, I am using laptop. But can't it be dual core processor for non laptops?

Also I think even if it was not built in PHP server, I could use port 8000.

And yea, I am running mysql locally.

No, I did not try my code on actual server, if you mean some remote like digital ocean. But I do not need to try - even if it works fast on that server, I need to develop on my machine. So I need to be working fast, so I could get good productivity.

"Was he fired?"

No. On most tasks his performance was on or above par. This only is proof that the manager is just new. Programming and the time to complete is variable as well as Joe may do better or worse than Jane. It doesn't mean they are LUCKY (?) or better or worse.

The text later in the reply is about hardware and such. For that you do want to test on a server machine. But I want to segue into an area I find new programmers get too invested in. Ready?

OVER OPTIMIZING.

That is, in a commercial environment you run the risk of dismissal if your code is just slow all the time as well as you spent too much time optimizing. It's a sliding scale of how much to invest (time or hardware) versus delivering a working MAINTAINABLE app(s).

It does not one any good if you have the fastest implementation of a zed core reduction function when no one can understand what you wrote. (Nod to APL and the one line of code for "Life.")

So let's say your code runs, you optimized it and it's the end of the week. It passes muster, time to ship it.

HERESY.

To some this is heresy. That is, I run across designers, coders, engineers that are stuck in "I can make it better" mode for too long. Read the specs, try to exceed them but avoid over optimizing.

Member Avatar for diafol

Herein lies the ROI. You can get bogged down with that pesky over-optimising. This is particularly true of DIY one-man band merchants like myself. You have to learn when good enough really is good enough and to leave well alone.

Not sure if having loads of apps open on your local machine should be a measure of speed as your app / site etc needs to be timed on a remote server - for real people. I found that Wordpress runs like a dream on my remote Linux server and chugs along painfully on my high spec Windows laptop. I'm still trying to find the issue, but it doesn't really matter at the mo as performance on my target platform is great.

I have usually have PHPStorm, Chrome, Explorer and XAMPP running - possibly Fireworks if I'm doing graphics. I kill skype as it shares the same port as XAMPP. If I'm coding, the comms are off. There are plenty of distractions without all that nonsense.

commented: Really Overdoing It? (Return On Investment.) OOP is not Over Optimized Program either. +0
commented: very true about over-optimising +14

To some this is heresy. That is, I run across designers, coders, engineers that are stuck in "I can make it better" mode for too long. Read the specs, try to exceed them but avoid over optimizing.

you mean overoptimizing not the apps speed, but quality, code quality in general?

I am sometimes not sure about automated testing. Many people in our office tell to use TDD. If I use TDD, then lot of code will be covered with tests. But tests take time to write.

And also I discussed with a team, said that Robert Martin tells to cover asymptotically 100% with the tests. It is kind of good, because when you refactor, you do not need to test every path manually, which would also be a time waster. And team agreed to close to 100% coverage. So now we are kind of equal, so if they do faster than me still, then still there is some problem in me.

Not sure if having loads of apps open on your local machine should be a measure of speed as your app / site etc needs to be timed on a remote server - for real people. I found that Wordpress runs like a dream on my remote Linux server and chugs along painfully on my high spec Windows laptop. I'm still trying to find the issue, but it doesn't really matter at the mo as performance on my target platform is great.

If you have to wait 3 seconds to load page on your local machine especially when it does nothing, just outputs some text, this is productivity killer. Everytime you make a change, you have to wait 3 seconds. They should add up during the day.

Member Avatar for diafol

If you have to wait 3 seconds to load page on your local machine especially when it does nothing, just outputs some text, this is productivity killer. Everytime you make a change, you have to wait 3 seconds. They should add up during the day.

Of course. I'm not talking about 3s / outputting some simple text. If that's all it does in that time, there is definitely something that needs investigating.

"something that needs investigating."

Make a new post about this. I can't find what the something is here. Remember to reveal what you are trying to find.

Example. "My SQL query takes 3 seconds. My DB is only 10K entries of name and phone number, running on a 1GHz Netbook."

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.