Welcome Guest ( Log In | Register )

Outline · [ Standard ] · Linear+

 What is your approach as Programmer/Developer?

views
     
HouseHunter
post Apr 19 2014, 10:26 AM

Getting Started
**
Junior Member
183 posts

Joined: Oct 2012
I'm a firmware engineer which need to due with low level programming + high level programming as well. Each feature implementation need to understand how the hardware spec and limitation. Programming is just a tools to ppl run their logic in different platform, important is the logic and flow much be realistic. I wonder compare a programming engineer and firmware engineer which one "harder"? blush.gif
malleus
post Apr 19 2014, 11:29 AM

Look at all my stars!!
*******
Senior Member
2,096 posts

Joined: Dec 2011
QUOTE(anti-informatic @ Apr 12 2014, 08:39 PM)
I heard of some companies offer people the position of system engineer, but the job scope? Change malfunctioning mouse, help manager to save microsoft words document, install software.....

All these varies according to different companies i guess
*
the term 'System Engineer' no longer means what it used to mean. Even 'Helpdesk' does not mean that they used to mean like 20 years ago.
malleus
post Apr 19 2014, 11:32 AM

Look at all my stars!!
*******
Senior Member
2,096 posts

Joined: Dec 2011
QUOTE(alien3d @ Apr 15 2014, 11:11 AM)
to me ,always there's a fight with salesman and programmer. Since,most in malaysia product cost are not calculate correctly..

Most cannot differentiate  between open source solution  or customize solution pricing.
this is largely a management issue.

QUOTE(alien3d @ Apr 15 2014, 11:11 AM)
Some programmer kinda sad work 18 hours a day to meet deadline..  we need to changed about it.
*
that depends lor. if you're working on something that you own and have a stake in, you'll be extra motivated to make sure it gets out the door even with 18 hours a day
malleus
post Apr 19 2014, 11:35 AM

Look at all my stars!!
*******
Senior Member
2,096 posts

Joined: Dec 2011
QUOTE(HouseHunter @ Apr 19 2014, 10:26 AM)
I'm a firmware engineer which need to due with low level programming + high level programming as well. Each feature implementation need to understand how the hardware spec and limitation. Programming is just a tools to ppl run their logic in different platform, important is the logic and flow much be realistic. I wonder compare a programming engineer and firmware engineer which one "harder"?  blush.gif
*
both r rather different, with different requirements, constraints and expectations.
sonido
post Apr 20 2014, 12:22 AM

New Member
*
Junior Member
47 posts

Joined: Mar 2014
QUOTE(dkk @ Apr 18 2014, 02:10 PM)
Depends on the situation. For quick one-off-use jobs, there's no point spending a couple of days writing code when the same thing could be achieved in half an hour. And especially if doing the processing manually (without writing any code at all) will take more time than "half an hour" and less than "a couple of days".

Imagine if your boss tells you "sort out these files by this criteria", expecting you to take 4 hours. But instead of doing that, you wrote a small script and finished the job in half an hour. Would he be happy? What if you went away for 3 days to write a stable and robust app? Would he wonder why you didn't just do it the 4-hour way? Would he be happy that you gave him this nice app that he can never sell, and nobody else can use, because that task was a one-off thing?

This is what I meant by programs made by sysadmins. Not full programs/apps, not one line bash command lines. But something in between. smile.gif
*
QUOTE(malleus @ Apr 18 2014, 08:54 PM)
I'll give you an example on the fallacy of stable and robust vs speed of creation.

Not that stability and robustness is not important, but if you're to look at the example of Twitter.

Originally developed using the Ruby on Rails framework, it allowed them to bring it up and get it out quickly. Then only they look at splitting up the core application into different bits and pieces for scalability and speed after that.

However if they're to plan for all of those scalability and speed stuff right from the start, they may have never been able to make it off the ground. It will simply take too long before they can have something usable and will very likely run out of money which is a very bad thing for a startup too. Actually you can also say that over planning with too much functionality that is confirmed to change multiple during the course of the project is what that causes large scale enterprise projects to have all sorts of horrible delays and go beyond budget in the first place.
*
Firstly, thanks for the thoughtful answers. But we need to understand clearly the reason why I said the speed of creation must never be more important, as it more likely going to compromise the robustness and stability of an app.

Take my simple example below (is in VB.Net, cuz im a VB guy transitioning slowly to C# ...),

Imagine this is during development phase, and we are designing a function that returns primitive integers, in an array.

First approach is a straight forward design with speed is a factor here.

CODE
Public Class Utility
    Public Function GetIntegerArray() As List(Of Integer)  ' <- function straightaway provides an array of integer.
           ' implementations here..
    End Function
End Class

Obviously this is a fast way and very likely prefered to many programmers.

Second approach, a more thorough study is involved in the design so that robustness and stability can be achieved here albeit with added complexity and more code to write. Time shouldn't be an issue here for any guy who knows his stuffs though. Writing code is not slow btw.

CODE
Public Class Utility
   Implements IEnumerable(Of ObjX)    ' <- instead of returning a naked array, we encapsulate the whole array inside this class, for security reasons. And instead of returning Integer, we release an object of type ObjX instead.
 
   Private Function GetEnumerator() As IEnumerator(Of ObjX) Implements IEnumerable(Of ObjX).GetEnumerator
        Return New InnerIterator
   End Function  

   Private Class InnerIterator
          Implements IEnumerator(Of ObjX)
         
         ' implementations here...
   End Class
End Class

' this is our custom made variables holder.
Public Class ObjX
   Public ReadOnly Property IntValue As Integer
End Class

Although both approaches provdies the same functionality, the second approach is kinda overkill, and most programmers would probably reject.

But then after the app is published, a client suddenly requests for a function to also return a primitive Double, and your boss expects you to provide a solution within 4 hours. Say what again ?

There are only 2 solutions in the first design.
1. Re-write another similar function that returns a double. <- This is gonna make you WET (Write Everything Twice, We Enjoy Typing) and violates the DRY principle (Dont Repeat Yourself).
2. Modify the current function to return a double instead. <- All the consuming code will be affected. Ripple effects. Major headache.
3. Ignore the request because of the 1st and 2nd problems. <- Well, reputation suffers.

...Should take more than 4 hours to fix the problem and in the mean time also skyrocketing the maintenance cost.

For the second design, the solution is a very simple one.
1. Just add a property that returns a double in the wrapper ObjX. Like so :

CODE
Public Class ObjX
    Public ReadOnly Property IntValue As Integer
    Public ReadOnly Property DblValue As Double <- variable double here.
End Class

...the rest remain unchanged. Very minimum work so shouldn't take 4 hours to fix the problem. And maintenance cost stays low.

So from this example, we can understand the reason why stability and robustness must rule over speed of creation for obvious reason, cost. And without a good amount of planning for scalability any project will peak its evolution prematurely. Also, IMO is bad to consider any work to be a just one off work, everything in a system is related, interconnected and must be documented each line to fully understood so any further adjustment in future is going to be smooth.
sonido
post Apr 20 2014, 12:28 AM

New Member
*
Junior Member
47 posts

Joined: Mar 2014
QUOTE(malleus @ Apr 18 2014, 08:47 PM)
1) PHP is not only target for database. actually I got no idea what you really mean here either
2) Java is not exactly a cousin to .NET
3) the vulnerabilities that you will probably encounter with PHP are likely the very same you will encounter in all other languages. it largely depends on your own skills in avoiding such vulnerabilities.
*
I'm a noob when it comes to PHP but,
1) I highly doubt PHP is the right tool or even capable in creating a non-database app, like ermm...the next generation high tech word processor ?
2 ) So say you. I also read from a lot of experts from Internet that support the similarities in both syntax and OOP fundamentals. But you maybe right, lets just say a distant couzin.
3 ) Can't be. PHP is not fully OOP. So problems/solutions are different.
alien3d
post Apr 20 2014, 12:56 AM

Look at all my stars!!
*******
Senior Member
3,740 posts

Joined: Mar 2009
QUOTE(sonido @ Apr 20 2014, 12:28 AM)
I'm a noob when it comes to PHP but,
1) I highly doubt PHP is the right tool or even capable in creating a non-database app, like ermm...the next generation high tech word processor ?
2 ) So say you. I also read from a lot of experts from Internet that support the similarities in both syntax and OOP fundamentals. But you maybe right, lets just say a distant couzin.
3 ) Can't be. PHP is not fully OOP. So problems/solutions are different.
*
1. php un limit to command line but also graphical like http://wxphp.org
2. what is oop and non oop ? to me not much diff but only one oop more seources and non oop less resources.
** Today most compile to bytecode something like .net or java because much faster.. And the limitation is easily hackable code.
** correct me if the term is wrong..
3. Not Fully oop ?,old vb 6 people complain not fully oop ? What is really oop .I don't know actually.If you look java jsp code,are really really war file is oop ?
malleus
post Apr 20 2014, 03:11 PM

Look at all my stars!!
*******
Senior Member
2,096 posts

Joined: Dec 2011
QUOTE(sonido @ Apr 20 2014, 12:28 AM)
I'm a noob when it comes to PHP but,
1) I highly doubt PHP is the right tool or even capable in creating a non-database app, like ermm...the next generation high tech word processor ?
2 ) So say you. I also read from a lot of experts from Internet that support the similarities in both syntax and OOP fundamentals. But you maybe right, lets just say a distant couzin.
3 ) Can't be. PHP is not fully OOP. So problems/solutions are different.
*
1) your example is similar to asking if ASP.NET is the right tool or even capable of creating like ermm... the next generation high tech word processor?

2) do you fully understand what .NET is and what it is not? C# is probably quite similar to Java. but try to compare Java to VB.NET or ASP.NET and see the difference? Or better yet, something like Script.NET or A# even. and mind you, VB.NET, ASP.NET, Script.NET and A# are all considered as .NET languages too. hence I wonder if you fully understand what you read from what the experts wrote.

3) so what exactly does being OOP or not have to do with security issues, and whether the same security issues applies across different languages and it is the individual developer's skill that's the most important in preventing such security issues in the first place?
malleus
post Apr 20 2014, 03:15 PM

Look at all my stars!!
*******
Senior Member
2,096 posts

Joined: Dec 2011
QUOTE(sonido @ Apr 20 2014, 12:22 AM)
Firstly, thanks for the thoughtful answers. But we need to understand clearly the reason why I said the speed of creation must never be more important, as it more likely going to compromise the robustness and stability of an app.

Take my simple example below (is in VB.Net, cuz im a VB guy transitioning slowly to C# ...),

Imagine this is during development phase, and we are designing a function that returns primitive integers, in an array.

First approach is a straight forward design with speed is a factor here.

CODE
Public Class Utility
    Public Function GetIntegerArray() As List(Of Integer)  ' <- function straightaway provides an array of integer.
           ' implementations here..
    End Function
End Class

Obviously this is a fast way and very likely prefered to many programmers.

Second approach, a more thorough study is involved in the design so that robustness and stability can be achieved here albeit with added complexity and more code to write. Time shouldn't be an issue here for any guy who knows his stuffs though. Writing code is not slow btw.

CODE
Public Class Utility
   Implements IEnumerable(Of ObjX)    ' <- instead of returning a naked array, we encapsulate the whole array inside this class, for security reasons. And instead of returning Integer, we release an object of type ObjX instead.
 
   Private Function GetEnumerator() As IEnumerator(Of ObjX) Implements IEnumerable(Of ObjX).GetEnumerator
        Return New InnerIterator
   End Function  

   Private Class InnerIterator
          Implements IEnumerator(Of ObjX)
         
         ' implementations here...
   End Class
End Class

' this is our custom made variables holder.
Public Class ObjX
   Public ReadOnly Property IntValue As Integer
End Class

Although both approaches provdies the same functionality, the second approach is kinda overkill, and most programmers would probably reject. 

But then after the app is published, a client suddenly requests for a function to also return a primitive Double, and your boss expects you to provide a solution within 4 hours. Say what again ?

There are only 2 solutions in the first design.
1.  Re-write another similar function that returns a double. <- This is gonna make you WET (Write Everything Twice, We Enjoy Typing) and violates the DRY principle (Dont Repeat Yourself).
2. Modify the current function to return a double instead. <- All the consuming code will be affected. Ripple effects. Major headache.
3. Ignore the request because of the 1st and 2nd problems. <- Well, reputation suffers.

...Should take more than 4 hours to fix the problem and in the mean time also skyrocketing the maintenance cost.

For the second design,  the solution is a very simple one.
1. Just add a property that returns a double in the wrapper ObjX. Like so : 

CODE
Public Class ObjX
    Public ReadOnly Property IntValue As Integer
    Public ReadOnly Property DblValue As Double <- variable double here.
End Class

...the rest remain unchanged. Very minimum work so shouldn't take 4 hours to fix the problem. And maintenance cost stays low.

So from this example, we can understand the reason why stability and robustness must rule over speed of creation for obvious reason, cost. And without a good amount of planning for scalability any project will peak its evolution prematurely. Also, IMO is bad to consider any work to be a just one off work, everything in a system is related, interconnected and must be documented each line to fully understood so any further adjustment in future is going to be smooth.
*
Out of curiosity, isn't your example here applicable towards every single language or framework out there? it really has got nothing to do with why you pick one language over another.
spyworld
post Apr 20 2014, 07:15 PM

Getting Started
**
Junior Member
175 posts

Joined: Jun 2006



Programmer is programming an application.
Developer is developing a application with unique idea and build from scratch.

As a REAL developer, we must start learning other programming language and understand other related course like cloud computing, virtualization, infrastructure, networking, system administration, lower programming language, micro processor and etc.

Back to 2006, freelance isn't a programmer. They get open source script and sell to the public. (Sometimes, I hate freelancer).

Because technologies is improving very fast. We must keep on learning and understanding.

I seen a web development company listed in Sdn Bhd. They don't have even 1 programmer. Everything outsourcing. (I guess, happen in Malaysia only).

If you really wanna to become expert, you must start accepting all the project. Make sure can some earn money for your living life.

This post has been edited by spyworld: Apr 21 2014, 01:06 AM
alien3d
post Apr 20 2014, 08:29 PM

Look at all my stars!!
*******
Senior Member
3,740 posts

Joined: Mar 2009
QUOTE(spyworld @ Apr 20 2014, 07:15 PM)
Programmer is programming an application.
Developer is developing a application with unique idea and build from scratch.

As a REAL developer, we must start learning other programming language and understand other related course like cloud computing, virtualization, instruction, networking, system administration, lower programming language, micro processor and etc.

Back to 2006, freelance isn't a programmer. They get open source script and sell at the public. (Sometimes, I hate freelancer).

Because technologies is improving very fast. We must keep on learning and understanding.
:
I seen a web development company listed in Sdn Bhd. They don't have even 1 programmer. Everything outsourcing. (I guess, happen in Malaysia only).

If you really wanna to become expert, you must start accepting all the project. Make sure can some earn money for your living life.
*
To me filter job upon speciality.dont be jack of all trade master of none.yeah i last week try to help a 0 progranmer company but wanted to jack price and wanted to get profit and run away.so i mail back sorry not interested.
ragk
post Apr 25 2014, 11:02 AM

BooBoo~
*******
Senior Member
2,265 posts

Joined: Apr 2009


QUOTE(anti-informatic @ Apr 11 2014, 05:14 PM)
One bad side of mine is that, sometimes i prefer to provide quick fix for certain issue instead of full solution. Lets say client complain of one issue related to incorrect database data that is being saved that cause incorrect result. I might or might not known of the exact source of error, but due to project manager's urge to quick settle it, or i have no idea what is the problem source after some study but it need to be fixed soon. So what i did was, manually modify the data in the database, let the client know it is fixed, and then take my time to identify the problem source and fix it. Good thing is everyone happy because the problem is solved, but it could turn out that another similar issue occur later or shortly after that and the client make bigger noise because they thought it should solved once and for all. Honestly, still not sure what to do about this, especially in rushing environment.

In terms of effort, sometimes project manager or client might ask for something complex or really difficult. For me, i usually would accept as long as it is do-able, although sometimes the given time is short in a silly way. In case I couldn't complete it within given time, i will give my actual reason that i know including I'm very tiring or my knowledge is insufficient, even though the stakeholders might think that's my problem, it shouldn't affect their expectation. Because programming, for me, is a highly complex thing that there is no one can master everything in a single programming languages in their entire life.

*
In my first job, i handle a payment software which has very big issue and caused me 2-3 hours everyday just to modify the database back to correct data. The previous programmer was doing this all the while. And the management is not even bother about this, they just let it happened and let the programmer to modify the database everyday. But for my part, 2-3 hours per day, that's a lot of time! So i speed up in finishing my task (to get more extra time) + spend only 30 minutes for lunch to fix this thing up, but it still took me 2-3 months. Because i'm really busy.

And i agree, everything is do-able thumbup.gif . If u cant just because u simply don't have the enough skill or knowledge. Basically i will say yes to everything. What doesn't kill u make u stronger.

This post has been edited by ragk: Apr 25 2014, 11:03 AM
dkk
post Apr 25 2014, 11:42 AM

10k Club
Group Icon
Elite
11,400 posts

Joined: Jan 2003
QUOTE(ragk @ Apr 25 2014, 11:02 AM)
In my first job, i handle a payment software which has very big issue and caused me 2-3 hours everyday just to modify the database back to correct data. The previous programmer was doing this all the while. And the management is not even bother about this, they just let it happened and let the programmer to modify the database everyday. But for my part, 2-3 hours per day, that's a lot of time! So i speed up in finishing my task (to get more extra time) + spend only 30 minutes for lunch to fix this thing up, but it still took me 2-3 months. Because i'm really busy.

And i agree, everything is do-able  thumbup.gif . If u cant just because u simply don't have the enough skill or knowledge. Basically i will say yes to everything. What doesn't kill u make u stronger.
*
Buggy payment software, writing incorrect data, that required daily manual correction ... nobody should be messing around with the database like that ... how does anyone know if that the person doing the manual correction didn't make mistakes, resulting in incorrect data being saved? doh.gif
alien3d
post Apr 25 2014, 11:52 AM

Look at all my stars!!
*******
Senior Member
3,740 posts

Joined: Mar 2009
QUOTE(dkk @ Apr 25 2014, 11:42 AM)
Buggy payment software, writing incorrect data, that required daily manual correction ... nobody should be messing around with the database like that ... how does anyone know if that the person doing the manual correction didn't make mistakes, resulting in incorrect data being saved?  doh.gif
*
I think they dont use commit false.so upon network or servrr hang.yeah or store procedure mess up
ragk
post Apr 25 2014, 12:17 PM

BooBoo~
*******
Senior Member
2,265 posts

Joined: Apr 2009


QUOTE(dkk @ Apr 25 2014, 11:42 AM)
Buggy payment software, writing incorrect data, that required daily manual correction ... nobody should be messing around with the database like that ... how does anyone know if that the person doing the manual correction didn't make mistakes, resulting in incorrect data being saved?  doh.gif
*
yup, extremely pressure job and unsystematic management. Even the database is not well design, table have no primary key causing it's almost impossible to re-structure the software with existing data.
frontierzone
post Apr 25 2014, 12:26 PM

Enthusiast
*****
Senior Member
715 posts

Joined: May 2010
I think the problem with a lot of management these days is they are more concerned about the business aspect instead of the technology. Management layer don't really consist of technology-oriented staff. Middle manager maybe a mix of project management & software, or total project management. But the management layer that gives the OK and not OK is usually a level or two higher than project manager/team leader, hence the middle layer does not have much power. So if the upper management want them to concentrate to squeeze in more projects, they will just give priority and let the old buggy software be dealt with using the "plug the leak all the time" method. Things like trying to organize a centralized technology framework throughout the company is quite non existent.





3 Pages < 1 2 3Top
 

Change to:
| Lo-Fi Version
0.0149sec    0.27    5 queries    GZIP Disabled
Time is now: 29th March 2024 - 09:29 PM