Page 5 of 6 FirstFirst ... 3456 LastLast
Results 41 to 50 of 52

Thread: On Becoming a Software Developer

  1. Top | #41
    Veteran Member
    Join Date
    Nov 2017
    Location
    seattle
    Posts
    4,596
    Rep Power
    11
    Quote Originally Posted by bigfield View Post
    Quote Originally Posted by steve_bank View Post
    There are tools that will take a script language and create C code for any platform and OS. It s not like it used to be. A lot of software today is aplication developent using high level tools.
    Does any developer worth a pinch of shit actually use those tools?
    Yes they do. It comes down to efficiency and cost. Work simplification.

    I can hire one software engineer and buy a $50k - 100k tool instead of 5 software engineers. I did ome hardware work for a guy who had a software company He went to a small college in the 80s with no scince r math. Taught himself software and developed a tool for banking and fiancé, made a lot of money. When I worked for him he had a yool and one part time software engineer. He had a global market and easily created versions for multiple platforms.

    Most algorithms are well known and developed. Even in the 80s tools for embedded programming developed to allow coding from general script files.

    It is not just that. Using MS tools you do not have to know anything about the net. All you supply is a file and a destination. Packets are formed and sent by low level functions. Files received are reconstructed from packets for you.
    The Windows OS DLLs.

    Bus mess seeks to reduce cost, software companies seek to simplify software development.

    The same has occurred in hayware development. Much less engineering skill and experience is needed today to design than 30 years ago. Mechanical deign as well. When I was at my peak using CAD I produced designs that when I started would take a team.

  2. Top | #42
    Veteran Member
    Join Date
    Nov 2017
    Location
    seattle
    Posts
    4,596
    Rep Power
    11
    C++ developed to deal with crashe due to C unrestricted pointers and minimizing unpredicted side effects on large programs with multiple coders, along with other things. Keeping code and data from one programmer being inadvertently corrupted by another.

    It was also common for one application to conflict with another. A lot of coding details you no longer have to worry about.
    With C, early Windows, and DOS originally you could easily crash the OS when debugging code.

    Sigh...those were the days.

  3. Top | #43
    Super Moderator
    Join Date
    Sep 2000
    Location
    Nevada
    Posts
    23,839
    Archived
    96,752
    Total Posts
    120,591
    Rep Power
    94
    Quote Originally Posted by lpetrich View Post
    I think that Loren Pechtel has a good point here. I have translated a solution of the n-queens problem into several other programming languages to see how well they do. For the most part, the code logic maps fairly straightforwardly.
    Exactly. I see this as dialects (even when they have no common root at all, say assembler vs Basic) rather than truly separate languages. It's the same steps internally.

    Truly separate languages think of things differently.

    I've found Programmer Competency Matrix | Sijin Joseph Here is a sample, for data structures:
    • 2^n (level 0) Doesn’t know the difference between Array and LinkedList
    • n^2 (level 1) Able to explain and use Arrays, LinkedLists, Dictionaries etc in practical programming tasks
    • n (level 2) Knows space and time tradeoffs of the basic data structures, Arrays vs LinkedLists, Able to explain how hashtables can be implemented and can handle collisions, Priority queues and ways to implement them etc.
    • log(n) (level 3) Knowledge of advanced data structures like B-trees, binomial and fibonacci heaps, AVL/Red Black trees, Splay Trees, Skip Lists, tries etc.
    Yup, although I'm not sure how relevant some of it is with how much the compilers help us now. The level 3 stuff here is things that most programmers are never going to have a reason to use. We install a database instead of reinventing the wheel. We provide a Compare function to Sort(), we don't write sorting routines. Game programmers might end up needing some fancy stuff in their world models (the graphics card is fast but you still need to intelligently cull before you ever make the polygons in the first place), but other than that unless you write databases, what's the need?

  4. Top | #44
    Super Moderator
    Join Date
    Sep 2000
    Location
    Nevada
    Posts
    23,839
    Archived
    96,752
    Total Posts
    120,591
    Rep Power
    94
    Quote Originally Posted by fromderinside View Post
    I have a single gripe with all you modernie gees.

    Things have changed since coding became a thing. Now there are plenty of memory, plenty of bandwidth, plenty of speed and plenty of parallel processes for one to make code understandable and useful. The goals of a good coder are not to put the most functions in the least number of statements. The goal for a good coder puts the precise number of statements necessary to flawlessly execute its described function with complete traceability AND to provide clear and indisputable explanations of how that was accomplished. There may be 1000 programmers in the world who have space and time limitations for their code. The other 100 million coders are just required to avoid messing things up. There is no shame in knowing existing good code one can apply to one's applications.

    If you write code and you think you need to be original to be successful take another job. You don't belong in programming.
    Huh? Only 1000 programmers who have space and time limitations???

    I got my start when 640k was enough for anybody. Only it wasn't when you were dealing with lots of data.

    I also recall repeatedly banging my head against the 64mb wall imposed by the environment I was working in. (Admittedly, there was a design decision made years before that was a headache in this regard--tables indicating what excluded what were part of the items rather than stored separately. In the environment in which it was made it was the right choice, but as features expanded it proved a memory eater down the road.) Recalculation times of the biggest jobs were around an hour, also.

    Even now performance can be an issue, especially when database operations are involved.

  5. Top | #45
    Super Moderator
    Join Date
    Sep 2000
    Location
    Nevada
    Posts
    23,839
    Archived
    96,752
    Total Posts
    120,591
    Rep Power
    94
    Quote Originally Posted by steve_bank View Post
    It was also common for one application to conflict with another. A lot of coding details you no longer have to worry about.
    With C, early Windows, and DOS originally you could easily crash the OS when debugging code.

    Sigh...those were the days.
    Yup. Try doing IPX and SPX communications. Kernel mode data structures in your address space and they wouldn't be reclaimed if your application crashed.

  6. Top | #46
    Contributor
    Join Date
    Jun 2010
    Location
    The North
    Posts
    9,025
    Archived
    9,514
    Total Posts
    18,539
    Rep Power
    45
    Quote Originally Posted by fromderinside View Post
    I have a single gripe with all you modernie gees.

    Things have changed since coding became a thing. Now there are plenty of memory, plenty of bandwidth, plenty of speed and plenty of parallel processes for one to make code understandable and useful. The goals of a good coder are not to put the most functions in the least number of statements. The goal for a good coder puts the precise number of statements necessary to flawlessly execute its described function with complete traceability AND to provide clear and indisputable explanations of how that was accomplished. There may be 1000 programmers in the world who have space and time limitations for their code. The other 100 million coders are just required to avoid messing things up. There is no shame in knowing existing good code one can apply to one's applications.

    If you write code and you think you need to be original to be successful take another job. You don't belong in programming.
    Something like this.

    Lots of bloviating in the IT industry, when the executive who wants to lay you off in two years to increase market share just wants something good enough so they can beat their competitors. Being a savant with tech is great, but at some point programmers need to realize that their primary function is to solve business problems, and in most programming jobs this doesn't take a savant level knowledge of programming, and even often dictates that you understand the broader world outside of technology. Beyond that the best programmers are people with good communication skills.

    But in truth pretty much no one has the tech, communication, AND worldly knowledge down, and at worst people just can't do it at all, which is why we're all employed regardless of how shitty we are at it.

  7. Top | #47
    Veteran Member
    Join Date
    Oct 2018
    Location
    Colorado
    Posts
    1,197
    Rep Power
    5
    Quote Originally Posted by bigfield View Post
    Quote Originally Posted by steve_bank View Post
    There are tools that will take a script language and create C code for any platform and OS. It s not like it used to be. A lot of software today is aplication developent using high level tools.
    Does any developer worth a pinch of shit actually use those tools?
    mostly for fast prototyping... but these tools can produce production quality code as well... if not as optimized as possible - which isn't always necessary.

    Unreal Engine is a good example of an environment like this. Many game developers use it to produce AAA games... and many just use it for ideation... but it has a use.

  8. Top | #48
    Veteran Member
    Join Date
    Nov 2017
    Location
    seattle
    Posts
    4,596
    Rep Power
    11
    It depends on the application.

    There are simple BASIC compilers for microcontrollers for less depending apps and less skilled developers.

    On the flip side codding in assembly language at least for code segments may be required. A C compiler will convert a sequence of C code to a sequence of assembly language code. There are times when the compiler generated code is not good enough. Sometimes sequence matters.

    Languages like Python provide a lot of canned functions that speed up development. at the expense of little control over how the functions operate. Software is always a readeoff between optimization, time, and cost.

    The flip side is C where you can build any custom function from scratch using primitives. At the expense of more time.

  9. Top | #49
    Administrator lpetrich's Avatar
    Join Date
    Jul 2000
    Location
    Lebanon, OR
    Posts
    5,583
    Archived
    16,829
    Total Posts
    22,412
    Rep Power
    76
    10 tips for success when you’re learning to code - freeCodeCamp.org - Medium
    1. Have a concrete goal in mind.
    2. Pick a plan and stick to it.
    3. It’s a marathon, not a sprint.
    4. Slow and steady wins the race.
    5. Don’t compare your progress to others… …but make friends with your peers!
    6. Make a habit of fitting coding into your daily schedule.
    7. Learn how to research topics and solve problems.
    8. Don’t just watch tutorials — build stuff!
    9. Be open to failure.
    10. Always be learning.
    I like #8 -- work on some small projects, some toy projects. I've done a lot of those. But you may find that they end up growing.

  10. Top | #50
    Mazzie Daius fromderinside's Avatar
    Join Date
    Oct 2008
    Location
    Oregon's westernmost
    Posts
    10,533
    Archived
    18,213
    Total Posts
    28,746
    Rep Power
    52
    Any program can be broken down to smaller linked programs accomplishing the same result well within time and space constraints.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •