# Is computer programming still worth getting into?



## breebreebran31

People have made programs where you just drag and drop different codes and then they click one button and it turns it into a working .exe
Programming is becoming so easy that even someone who has never touched a computer can figure it out in a matter of days.
Is it even worth it to go to college and get a Bachelors of Science and become a computer engineer?
Or after 10 years is there even going to be a required certification?
I used to look at computer programming as a high-end career, like kids always saying "I want to grow up to be a lawyer or an astronaut." But now it just seems like a job for a janitor, just better paying.
Is there a field of technology that is elite, compared to drag and drop software, that is actually worth getting the certification and that will require some effort to be put into it?
I know it still requires programming to even make the drag and drop software, but then what? Make more drag and drop software and update your previous ones? Or make your own Photoshop by dragging and dropping code into a box? You have nothing left to build. And with the simplicity it has now it seems like you're doing first grade math. 
I might be sounding dumb right now, because I don't really know programming so I'm probably overexaggerating how easy it is. But I started learning java, and then I found out about all of these simple ways to do it. And that just seems distasteful and made me quit. I want to actually program based off of my knowledge. And programming is the most appealing to me because of the problem solving. I want to learn for myself that there's bugs in my code. I dont want a program to tell me that. And I want to program manually. Not from a word bank of code. Is all programming getting this simple? Or is there still careers that will require a 5 year certification and experience with tons of different programming and hardware/software that require you to actually use everything that you know?



I'm not trying to bash on a computer programmers career, if that's what it sounds like. This is just my perspective of it.


----------



## Amd_Man

When I went to college for my computer courses one of the courses was basic programming and I found it very hard to do. Many many steps just to get a basic program to work. Some in my class took to it quite easily while myself and many others struggled with it. I did pass it, but barely!


----------



## niemiro

Hello!

At the moment, we still need programmers. Those drag and drop programs which actually do the coding for you are useless for anything serious. They can only make what they are designed for, and so are extremely limited. They produce slow code for the simple games they do make. Anything at all serious needs a programmer. A proper programmer. 

However, we are heading that way. Nothing can be done using these programs yet, but .net does speed up interface creation (it creates the interface quickly and simply), but the interface does nothing. That requires code, and lots of it. However, Microsoft Research are looking into creating a whole operating system in .net. But there is a problem. It is so bloated, using so many resources and running so slowly that it is not feasible. You see? A programmer writing the code he needs is still better than having all code available, but not activating it. 

I see us heading into the .net direction, and losing non-managed languages. However, I do not see us losing programming for many years to come. 

A real programmer would laugh and scorn at those drag and drop game creators.

However, there is another angle to your question. Programmers do not have to learn it from a Computer Science degree. Programming is still good, but that particular degree may not be. 

They often teach you Java, and often only to a simple-ish level, with lots of other padding. You must choose your course carefully. However, if you are motivated, you can learn to program at home. There are very many books available. I did. You still need a degree - maths would be common, but not necessarily a computer science degree.

However, I am not amazingly knowledgable with career moves. I shall arrange for two of our best experts in this subject to come and discuss whether this is a good move before you change your life based on the knowledge of someone who doesn't really know


----------



## LMiller7

I am highly skeptical of how far these programs can go. I remember reading about them decades ago. Well, it wasn't exactly drag and drop back then because the computers capable of doing that existed only as research projects. And people were saying the same things then as you are now. Computers would become so advanced and easy to use that everybody would be a programmer. It didn't happen then and I don't think it ever will.

At least that is the way I see it. I have been using computers in one form or another since before (I am sure) some of this forums moderators were born. And by I was no longer a teenager.


----------



## Emphyrio

breebreebran31 said:


> People have made programs where you just drag and drop different codes and then they click one button and it turns it into a working .exe


And who do you think write that code ? :smile:


----------



## AceInfinity

I see the point in what you're saying, but realize these methods are put in place because not everyone can become an engineer, nor an astronaught, or a programmer 

It's the ones that truly understand their specific field that are the most valuable as well. Anyone can copy over some code that someone has written, but it is an entirely different thing to understand it. And that understanding is acceptably 100 times more valuable than saying that you have something which "works"

Dragging and dropping code... Hmm, that has to come from a source though doesn't it? Therefore, that essentially means that someone has already made what you have "created" by dragging and dropping some code to create an app of your own, then I don't see the point though in having created it a second time personally.

I will say that it's not as easy as you think, you can't always just drag and drop code, it's not always going to work with the tools you use or what you currently have for instance. And maybe you need to improve the code first before it can be used on an older/newer NT version, or system alone for that matter. There's 2 things here, or more. The code itself, and the visual, the GUI. These need to interact, so even if you have someone's code that works, it still needs to be able to intereact with the GUI that you have, which will not just come by dragging and dropping that code.

"I want to learn for myself that there's bugs in my code. I dont want a program to tell me that." - What are you talking about here? An IDE or development environment of some sort? A program to make a program in my mind, that's the only thing I can come up with, and you need a compiler if you're programming in C++ or Java, and lots of other languages for that matter. In some cases it's better for the IDE to tell you that you're making a mistake, as it prevents something that could be completely disasterous and harmful to your own system. Which is what you need to consider here. Programming is powerful, and powerful enough with some languages that I can damage your system if you don't know what you're doing, and especially when just learning, you may think you know it all, but that's definitely not the case I can assure you.

"Not from a word bank of code" - You're talking about intellisense here then? Well then turn it off, there's a setting somewhere in the IDE which should allow you to do this. When it comes to that, there's a difference between having to learn this all on your own, and efficiency and productivity, which are definitely also important. You couldn't possibly inherit and understand the full range of a language syntax without forgetting something. Even myself I couldn't dream of that.

For your lack of programming experience, I think personally you're being too quick to judge programmer's difficulties.


----------



## Amd_Man

Exactly! Anyone can copy and paste code, but that's the easy way. I have nothing but respect for programmers as I did the basics (way back now) and it's not easy to grasp and there are many, many steps to get it to even work!


----------



## Special2God

I think computer programming is definitely not a dying skill. 
Just from experience in college, I would say that only 60-70% of people who go into programing actually make it past the first 2-3 classes and 'click' with the way programing works as a skill. 

Drag and drop code is possible, but mostly for creating GUIs; I've used Java and know that some java programers create their GUIs by drag and drop, but the main logic of the program still requires a lot of coding. 

And as others in this thread have said, drag and drop coding merely allows you to reuse other's work, which is very inflexible. 

Knowing how to drag and drop vs. knowing how to program is huge, drag and drop is fairly inefficient performance wise as each part has to have a very general purpose to fit together with other parts and people that drag and drop tend to drag and drop to much leading to a lot of extra memory use and somewhat slower code. 

If your interested in programing as a job, you will definitely need to know how to program 'the old' way.


----------



## AceInfinity

If by drag and drop he meant the GUI itself though, that's not programming, lol that's only the designer half, but it is probably better to have it that way, as you want to be able to focus on the actual functionality of the program, which is where the real coding takes place. Otherwise you're highly misusing your time priority-wise if you have to fool around trying to build your own GUI libraries, and that's not productivity.


----------



## Special2God

Not to get to far off topic, but what do you mean by GUI libraries. 
C#, Java, VB, etc. provide buttons, text fields, drop down boxes, etc within the languages libraries, such as Java's AWT and Swing libraries? 
Are you saying that most people drag and drop their GUI's?


----------



## AceInfinity

No I wasn't saying that anyone does anything, I was just trying to figure out by what *breebreebran31* meant by "Drag and Drop" "stuff" though. You can create your own controls, even in C#, VB where they provide you fairly well everything. I've done it  It's actually somewhat fun.


----------



## Special2God

I see, or rather understand, thanks. 
Interesting to note that breebreebran31 has only made one post in this thread, we're up to 12 posts and still no reply from the OP.


----------



## breebreebran31

*Special2God *I haven't look at this thread since I got the first reply. I was just waiting for more replies. 
*AceInfinity* I was talking about IDE's.
When I posted this I was mainly ranting about programs like Dreamweaver, Visual Basic, Eclipse and I forgot the name of it but in my robotics class we're using a drag and drop program made by Vex. 
And I guess I was just focusing on the drag and drop GUI's


----------



## Ninjaboi

breebreebran31 said:


> *Special2God *I haven't look at this thread since I got the first reply. I was just waiting for more replies.
> *AceInfinity* I was talking about IDE's.
> When I posted this I was mainly ranting about programs like Dreamweaver, Visual Basic, Eclipse and I forgot the name of it but in my robotics class we're using a drag and drop program made by Vex.
> And I guess I was just focusing on the drag and drop GUI's


The program you might be talking about is called Easy C, as it's used in introductory robotic classes. If you're working with Lego bots, it might be something else.


----------



## AceInfinity

breebreebran31 said:


> And I guess I was just focusing on the drag and drop GUI's


That is about I would say 5-10% of the programmers work, that's nothing really. The programming side is not like that.


----------



## LMiller7

Manual creation of a GUI in a language like C or java isn't particularly difficult but can be very tedious and time consuming. IDE's were designed to relieve the programmer from the tedious aspects of application development, thus allowing him to concentrate his time on what the application does. An IDE is simply a tool that makes a programmer more productive. This is very important in a commercial project where time is money.


----------



## niemiro

AceInfinity said:


> That is about I would say 5-10% of the programmers work, that's nothing really. The programming side is not like that.


+1

I personally feel that drag and drop GUIs are excellent. They allow me to make the GUI so much more quickly, and create a much better end product. It just saves me time. However, all the coding is still there, and it can take forever


----------



## AceInfinity

LMiller7 said:


> Manual creation of a GUI in a language like C or java isn't particularly difficult but can be very tedious and time consuming. IDE's were designed to relieve the programmer from the tedious aspects of application development, thus allowing him to concentrate his time on what the application does. An IDE is simply a tool that makes a programmer more productive. This is very important in a commercial project where time is money.





niemiro said:


> +1
> 
> I personally feel that drag and drop GUIs are excellent. They allow me to make the GUI so much more quickly, and create a much better end product. It just saves me time. However, all the coding is still there, and it can take forever


I couldn't have worded this any better than you guys, you both hit it on the nail with these posts... Or at least that's my view anyways. Someone else may have a different perspective, but I would agree with both these posts.


----------



## tosh9i

If you're looking to make big bucks, you can move to Australia and become a miner. They earn around $200,000/year:

The $200,000-a-Year Mine Worker - WSJ.com

"MANDURAH, Australia—One of the fastest-growing costs in the global mining industry are workers like James Dinnison: the *25-year-old high-school dropout from Western Australia makes $200,000 a year running drills in underground mines *to extract gold and other minerals."


----------



## breebreebran31

tosh9i said:


> If you're looking to make big bucks, you can move to Australia and become a miner. They earn around $200,000/year:
> 
> The $200,000-a-Year Mine Worker - WSJ.com
> 
> "MANDURAH, Australia—One of the fastest-growing costs in the global mining industry are workers like James Dinnison: the *25-year-old high-school dropout from Western Australia makes $200,000 a year running drills in underground mines *to extract gold and other minerals."



Why doesn't everyone just drop out of school and do that?
People don't want 200K a year?
I'd do it in a heartbeat.
*

On topic*, if IDE's are just for making GUI's, does that mean programming is still an intensive thing to do?


----------



## shuuhen

breebreebran31 said:


> I was talking about IDE's.
> When I posted this I was mainly ranting about programs like Dreamweaver, Visual Basic, Eclipse


The IDE's can help with some mundane parts of programming, but I typically just use a good text editor (vim) and various command line tools. I think every programmer should become comfortable with a good cross platform text editor (i.e. vim or maybe even emacs) and other command line tools.

IDE's integrate UI designers, debuggers, text editors, a build system and sometimes other features (e.g. symbolic refactoring tools). They just combine tools programmers use into one program - and you don't need to use an IDE (unless the program you're required to work on uses IDE project files for the build system). I rarely touch an IDE unless I have to.

As far as Dreamweaver and other similar web layout tools, there's a big difference between a markup language like HTML and a programming language like Ruby or JavaScript. If you want complex behavior, you still need the programming language.

UI designer applications just generate the boilerplate (i.e. boring, repetitive, but straightforward junk) that needs to exist for the basic UI. Most of this is basic layout and sizing, which is much easier when you can visualize what the dialog will look like before any dynamic behavior. A lot of work goes into actually putting functionality behind the dialog.

Something to keep in mind: A lot of people like to put "engineer" somewhere in a job title, but engineering as a subject is applying science. As long as computer science advances and there are new/unsolved problems, software engineering will be a complex field. Regardless of the tools that exist now or in the future, you will need to understand the _theory/concepts_ and how to apply those. The language is only a way to express algorithms. The algorithms and design concepts are almost entirely independent from the language (although some things are easier in one language than another).

Benjamin Lee Whorf said "Language shapes the way we think, and determines what we can think about." A fundamental part of learning languages like C++, Ruby and Haskell is to allow you to think and express ideas differently from someone who just clicks around GUIs.


----------

