The 30 Day "No IDE" Challenge
-
You seem to have got quite a lot of fairly negative responses. Well, I just wanted to say that I like the idea. I've only ever really developed in a world of IDEs. From when I started vb4 sometime in my school years. I think the idea of removing the IDE from your developing will help you learn some of the skills that the older generation of programmers have. I think you'll gain a better knowledge of the framework. I know when I come back to do something I often rely on intellisense to remind me of the exact name of a function or class. Without an IDE, you'll have to work from memory, so you'll improve that memory. Also, I have written custom code snippets for things like the dispose pattern, which means, if I'm honest I'm not sure I could type out the dispose pattern without a mistake without referring to my snippet. What the IDE has done for us is removed the need to remember all the little details. While this is good for a lot of development, when we start to rely on it, it can become detrimental. I might join you in going IDE-less at home for a while. Good luck.
Simon
Simon Stevens wrote:
You seem to have got quite a lot of fairly negative responses. Well, I just wanted to say that I like the idea.
Thanks. :) It might be a waste of time for some, but that still doesn't change the way I think about it. If I can learn something out of the experience, then it really doesn't matter what everyone else says.
Simon Stevens wrote:
I think the idea of removing the IDE from your developing will help you learn some of the skills that the older generation of programmers have. I think you'll gain a better knowledge of the framework. I know when I come back to do something I often rely on intellisense to remind me of the exact name of a function or class. Without an IDE, you'll have to work from memory, so you'll improve that memory.
...and that's exactly what I'm getting at--I wasn't born during the days when the old timers had to hack away at console terminals just to get a compile going, and even if they say that I'm already doing that", what about me? Like everyone else here, I want to be a better programmer. There's no way I can get the same amount of experience or knowledge unless I do it on my own, and frankly, I don't care if the questions I ask might seem "stupid" to others--at least I learn from it, and I make absolutely no apologies for asking those questions.
Simon Stevens wrote:
What the IDE has done for us is removed the need to remember all the little details. While this is good for a lot of development, when we start to rely on it, it can become detrimental.
Well, it's that detrimental dependency on an IDE that bothers me. I want to understand what is underneath the IDE in the same way some programmers (like myself) study IL to understand the higher level CLR languages like C#, and VB.NET. You can go through your entire career without ever knowing IL, but for those of us that *do* know about it, it really changes the way you think about the framework itself. So if I get flamed for it, then so be it. :cool:
Do you know...LinFu?
-
Like others have said, all you'll really gain from this is a better memorization of the language and API since you won't have Intellisense, and a better knowledge of the compilation, which could be useful. In the long run, this seems kind of...pointless. Also, I think it depends on what you're building. This would be fine for class libraries and some web sites, but I'll bow to the person who writes a WinForms front-end consuming a WF back-end without touching the IDE. (I'd also have you committed, but that's another story).
JHubSharp wrote:
Also, I think it depends on what you're building. This would be fine for class libraries and some web sites, but I'll bow to the person who writes a WinForms front-end consuming a WF back-end without touching the IDE. (I'd also have you committed, but that's another story).
It's safe to say that I don't think I'll ever write a WinForms GUI by hand--even I have to admit that's pointless. In my case, I rarely make any GUI apps, so creating your own class libraries without an IDE isn't as suicidal as say, trying to manually plot the screen coordinates of a WinForms control on a form. So yeah, you can call me crazy, and it makes me write better software in the end, I don't mind being called a loony. :cool:
Do you know...LinFu?
-
If you've ever watched this show[^], you've probably seen people depriving themselves from the most common things that they take for granted. Now, aside from your day job, what would happen if you forced yourself to use only command-line build tools (such as NAnt, NUnit, and MSbuild) for your personal projects at home? At the end of thirty days, how would that change the way you write code? Here are the rules: -You cannot use any IDE to build your personal code (that means no VS2008, SharpDevelop, MonoDevelop, or any other IDE out there). "Personal code" is any code that you write as a hobby. * -You *can* use graphical text editors with syntax highlighting, but they CANNOT have any form of Intellisense or code completion. -You must use either NAnt or MSBuild, or the command line compiler for your favorite language to build your projects. *You can, of course, use any tool you wish if it is a work-related task. Everyone here has to make a living, somehow. :) Right now, this idea is just on the drawing board, but I figured that I'd post the basic rules for the challenge to the CP community and see if I can get it refined before I take the challenge myself. Depending on the feedback, I'll either blog about it or put up a series of articles on CP regarding "Kicking the IDE Habit". So what do you guys think? Do the rules seem fair enough? Anyone else want to take the challenge with me?
Do you know...LinFu?
Certainly a worthwhile exercise. If I were stripped out of Visual Sutdio I would be in the mud. Sometimes I feel I don't know how to code as VS does it all for me. What If I couldn't select the method on the Intellisense list? I think that is great exercise, requires some balls but is worth a try. I bet you will (at least I would) end up running back to those old books and help files to figure out what is that little thing that you used to do all the time but you can't remember now (HAHA NO intellisense for you and no drag'n drop). I think this way you can even figure out better ways to do the same thing. Nice initiative, I just don't know If I have the guts to do it, besides doing very simple console applications using C. Regards
-
Ennis Ray Lynch, Jr. wrote:
I can guarantee one thing however, if we all developed with a text editor instead of an IDE that crap called properties would have never been introduced.
So using getX() and setX() like in Java looks nicer to you?
Try using a text only editor for a few weeks and get back to me.
Need software developed? Offering C# development all over the United States, ERL GLOBAL, Inc is the only call you will have to make.
Happiness in intelligent people is the rarest thing I know. -- Ernest Hemingway
Most of this sig is for Google, not ego. -
Most of my CS classes required text only. While the C++ we could use the MS IDE as the University has a license for all students for Visual Studio all of the work was on Linux so we still had to use gcc and javac for most of it typing code in vi. Then the prof's would through a curve and just pick random languages, comparative languages was a real PITA. What you will find when leaving the IDE you will quickly learn a lot more of the API by memory. Combine that with faster typing skills and you will really pound some code out. However, I would suggest Java for breaking the IDE habit and not C#. The I have found Java documentation to be so much better. You will need a lot of documentation right at your fingertips.
Need software developed? Offering C# development all over the United States, ERL GLOBAL, Inc is the only call you will have to make.
Happiness in intelligent people is the rarest thing I know. -- Ernest Hemingway
Most of this sig is for Google, not ego.Ennis Ray Lynch, Jr. wrote:
all of the work was on Linux so we still had to use gcc and javac for most of it typing code in vi.
I still used visual studio as my editor for my slowlaris projects in college. VS6 -> leechftp -> telnet -> gcc
Today's lesson is brought to you by the word "niggardly". Remember kids, don't attribute to racism what can be explained by Scandinavian language roots. -- Robert Royall
-
Like others have said, all you'll really gain from this is a better memorization of the language and API since you won't have Intellisense, and a better knowledge of the compilation, which could be useful. In the long run, this seems kind of...pointless. Also, I think it depends on what you're building. This would be fine for class libraries and some web sites, but I'll bow to the person who writes a WinForms front-end consuming a WF back-end without touching the IDE. (I'd also have you committed, but that's another story).
I dont think it is pointless, this is a very dangerous and broad word. I can give you an example: You used to work for a company and there you developed a very complex Win Forms app. Well, now you don't work there anymore but they want you to add a functionality or fix a given class. Well, they don't want to give you the whole project and they send you only the relevant file. This file won't compile and uses types defined in other areas of your application. How would you go about that? Fix the text file and send it back so they will compile there in the project. This is only one reason among many that beeing less dependant of the IDE might coming in handy. I don't think it is pointless to get yourself better at something and less dependant of something else. Cheers
-
Philip Laureano wrote:
So what do you guys think?
I think it is a stupid idea. This is the way things used to be done. Try something like building an application in binary if you want a challenge. Been there, done that.
Gary
It would be stupid for someone that's been there and done that. Not the other way around. Or do you really think you would have better skill if you hadn't been there or done that?
-
If you've ever watched this show[^], you've probably seen people depriving themselves from the most common things that they take for granted. Now, aside from your day job, what would happen if you forced yourself to use only command-line build tools (such as NAnt, NUnit, and MSbuild) for your personal projects at home? At the end of thirty days, how would that change the way you write code? Here are the rules: -You cannot use any IDE to build your personal code (that means no VS2008, SharpDevelop, MonoDevelop, or any other IDE out there). "Personal code" is any code that you write as a hobby. * -You *can* use graphical text editors with syntax highlighting, but they CANNOT have any form of Intellisense or code completion. -You must use either NAnt or MSBuild, or the command line compiler for your favorite language to build your projects. *You can, of course, use any tool you wish if it is a work-related task. Everyone here has to make a living, somehow. :) Right now, this idea is just on the drawing board, but I figured that I'd post the basic rules for the challenge to the CP community and see if I can get it refined before I take the challenge myself. Depending on the feedback, I'll either blog about it or put up a series of articles on CP regarding "Kicking the IDE Habit". So what do you guys think? Do the rules seem fair enough? Anyone else want to take the challenge with me?
Do you know...LinFu?
-
If you've ever watched this show[^], you've probably seen people depriving themselves from the most common things that they take for granted. Now, aside from your day job, what would happen if you forced yourself to use only command-line build tools (such as NAnt, NUnit, and MSbuild) for your personal projects at home? At the end of thirty days, how would that change the way you write code? Here are the rules: -You cannot use any IDE to build your personal code (that means no VS2008, SharpDevelop, MonoDevelop, or any other IDE out there). "Personal code" is any code that you write as a hobby. * -You *can* use graphical text editors with syntax highlighting, but they CANNOT have any form of Intellisense or code completion. -You must use either NAnt or MSBuild, or the command line compiler for your favorite language to build your projects. *You can, of course, use any tool you wish if it is a work-related task. Everyone here has to make a living, somehow. :) Right now, this idea is just on the drawing board, but I figured that I'd post the basic rules for the challenge to the CP community and see if I can get it refined before I take the challenge myself. Depending on the feedback, I'll either blog about it or put up a series of articles on CP regarding "Kicking the IDE Habit". So what do you guys think? Do the rules seem fair enough? Anyone else want to take the challenge with me?
Do you know...LinFu?
That would be an excellent way to learn more about programming. I'm pretty new to programming (1 1/2 years as a hobby) and it would be beneficial for me to go through that experience. The only reason I wouldn't do it is because API documentation sucks so bad! I might learn more about how the compiler works but I wouldn't be able to find enough definitions to actually have a full program to compile. But for you 10 and 15 year veterans it could only help. You already know the APIs or atleast enough to get through. So the worst thing is you would become faster and more efficient while expanding your API vocabulary. You're not going to maintain first place if you don't hone your skills every once in a while. I'm still very intrigued by this idea. If anyone has any suggestions about a language that has good documentation, or maybe good third party documentation for one of the VS languages, your sharing would be appreciated. This would be an awesome way for me to better understand what is happening behind the scenes, but it's impossible without better resources. I have another question. I've never worked on a large project. How do you guys (or girls) plan and implement code if you can't recall (off the top of your head) what methods' parameters are? It seems like that would be a very crucial part of the design stage. P.S. Great Idea!
modified on Thursday, September 25, 2008 9:38 AM
-
That would be an excellent way to learn more about programming. I'm pretty new to programming (1 1/2 years as a hobby) and it would be beneficial for me to go through that experience. The only reason I wouldn't do it is because API documentation sucks so bad! I might learn more about how the compiler works but I wouldn't be able to find enough definitions to actually have a full program to compile. But for you 10 and 15 year veterans it could only help. You already know the APIs or atleast enough to get through. So the worst thing is you would become faster and more efficient while expanding your API vocabulary. You're not going to maintain first place if you don't hone your skills every once in a while. I'm still very intrigued by this idea. If anyone has any suggestions about a language that has good documentation, or maybe good third party documentation for one of the VS languages, your sharing would be appreciated. This would be an awesome way for me to better understand what is happening behind the scenes, but it's impossible without better resources. I have another question. I've never worked on a large project. How do you guys (or girls) plan and implement code if you can't recall (off the top of your head) what methods' parameters are? It seems like that would be a very crucial part of the design stage. P.S. Great Idea!
modified on Thursday, September 25, 2008 9:38 AM
Adam Loudermilk wrote:
I'm still very intrigued by this idea. If anyone has any suggestions about a language that has good documentation, or maybe good third party documentation for one of the VS languages, your sharing would be appreciated. This would be an awesome way for me to better understand what is happening behind the scenes, but it's impossible without better resources.
MSBuild is a great tool build to research since it's practically the lingua franca for the VS2005/2008 build environment. As for the programming languages, I recommend using C# since it really cuts down on the typing compared to VB.NET. VB.NET, in contrast, might be a bit easier to learn since it's much closer to the English language, but it hides much more implementation details from you than C#, and that might not be a good thing if you're looking to understand the framework. My only advice to you is to start solving small problems, and keep practicing your way until you can solve bigger problems. Once you're done with that, just repeat the cycle all over again. Rinse, and repeat.
Adam Loudermilk wrote:
I have another question. I've never worked on a large project. How do you guys (or girls) plan and implement code if you can't recall (off the top of your head) what methods' parameters are? It seems like that would be a very crucial part of the design stage.
The simple answer for me is that most of the time, I don't have the whole solution to the problem planned out in my head. I only have bits and pieces of answers to some of the smaller problems in the overall solution, and I keep solving those problems incrementally until the pieces come together to solve the bigger jigsaw puzzle. IMHO, the art of writing code is managing complexity, and if you can keep it simple and manageable, then you can work with projects of unimaginable (or seemingly unmanageable) size. I think Sun Tzu said it best--it's not about the size of the task as it is about minimizing complexity. Once you minimize complexity, managing a big project and a small project is conceptually the same task. It's all a matter of organization. :)
Adam Loudermilk wrote:
P.S. Great Idea!
Thanks. :)
Do you know...LinFu?
-
If you've ever watched this show[^], you've probably seen people depriving themselves from the most common things that they take for granted. Now, aside from your day job, what would happen if you forced yourself to use only command-line build tools (such as NAnt, NUnit, and MSbuild) for your personal projects at home? At the end of thirty days, how would that change the way you write code? Here are the rules: -You cannot use any IDE to build your personal code (that means no VS2008, SharpDevelop, MonoDevelop, or any other IDE out there). "Personal code" is any code that you write as a hobby. * -You *can* use graphical text editors with syntax highlighting, but they CANNOT have any form of Intellisense or code completion. -You must use either NAnt or MSBuild, or the command line compiler for your favorite language to build your projects. *You can, of course, use any tool you wish if it is a work-related task. Everyone here has to make a living, somehow. :) Right now, this idea is just on the drawing board, but I figured that I'd post the basic rules for the challenge to the CP community and see if I can get it refined before I take the challenge myself. Depending on the feedback, I'll either blog about it or put up a series of articles on CP regarding "Kicking the IDE Habit". So what do you guys think? Do the rules seem fair enough? Anyone else want to take the challenge with me?
Do you know...LinFu?
-
I dont think it is pointless, this is a very dangerous and broad word. I can give you an example: You used to work for a company and there you developed a very complex Win Forms app. Well, now you don't work there anymore but they want you to add a functionality or fix a given class. Well, they don't want to give you the whole project and they send you only the relevant file. This file won't compile and uses types defined in other areas of your application. How would you go about that? Fix the text file and send it back so they will compile there in the project. This is only one reason among many that beeing less dependant of the IDE might coming in handy. I don't think it is pointless to get yourself better at something and less dependant of something else. Cheers
-
If you've ever watched this show[^], you've probably seen people depriving themselves from the most common things that they take for granted. Now, aside from your day job, what would happen if you forced yourself to use only command-line build tools (such as NAnt, NUnit, and MSbuild) for your personal projects at home? At the end of thirty days, how would that change the way you write code? Here are the rules: -You cannot use any IDE to build your personal code (that means no VS2008, SharpDevelop, MonoDevelop, or any other IDE out there). "Personal code" is any code that you write as a hobby. * -You *can* use graphical text editors with syntax highlighting, but they CANNOT have any form of Intellisense or code completion. -You must use either NAnt or MSBuild, or the command line compiler for your favorite language to build your projects. *You can, of course, use any tool you wish if it is a work-related task. Everyone here has to make a living, somehow. :) Right now, this idea is just on the drawing board, but I figured that I'd post the basic rules for the challenge to the CP community and see if I can get it refined before I take the challenge myself. Depending on the feedback, I'll either blog about it or put up a series of articles on CP regarding "Kicking the IDE Habit". So what do you guys think? Do the rules seem fair enough? Anyone else want to take the challenge with me?
Do you know...LinFu?
I'm currently writing in Kate which is just a text editor and compile with Make in a Bash shell. At work. On Linux. Debugging? printf. Last year at this time I was in VS2005 with all the intellisense and wizards and Enterprise Application Block and config editors and WCF interface generators and LLBL object modelers and.... there wasn't much coding involved. Heh. I'm fine with the command line. Kinda like when Java 1.0 came out and I was using Multi edit and command line tools. Fun! But to be fair, Kate has good syntax highlighting, but no smart indent. No intellisense.
I've heard more said about less.
-
Super Lloyd wrote:
I started with Notepad long ago. I worked with Notepad for a long time. Well not notepad, JFE[^] actually. One day I tried VS, never look back! (also #develop) Why walk when you can fly?
You've got a point there--the problem is that I don't have the luxury of using VS2008 in a non-windows environment, and I need to learn how to do without the IDE and learn how to build apps with the command line tool (which is probably going to be nant, in this case). I realize that there are platform-independent IDEs as well, but I want the build process to be consistent despite whatever platform I use.
Do you know...LinFu?
If you're going to develop commercial code at the command line, I hope you're billing by the hour!
-
If you've ever watched this show[^], you've probably seen people depriving themselves from the most common things that they take for granted. Now, aside from your day job, what would happen if you forced yourself to use only command-line build tools (such as NAnt, NUnit, and MSbuild) for your personal projects at home? At the end of thirty days, how would that change the way you write code? Here are the rules: -You cannot use any IDE to build your personal code (that means no VS2008, SharpDevelop, MonoDevelop, or any other IDE out there). "Personal code" is any code that you write as a hobby. * -You *can* use graphical text editors with syntax highlighting, but they CANNOT have any form of Intellisense or code completion. -You must use either NAnt or MSBuild, or the command line compiler for your favorite language to build your projects. *You can, of course, use any tool you wish if it is a work-related task. Everyone here has to make a living, somehow. :) Right now, this idea is just on the drawing board, but I figured that I'd post the basic rules for the challenge to the CP community and see if I can get it refined before I take the challenge myself. Depending on the feedback, I'll either blog about it or put up a series of articles on CP regarding "Kicking the IDE Habit". So what do you guys think? Do the rules seem fair enough? Anyone else want to take the challenge with me?
Do you know...LinFu?
Could I use graphical resource builders and decompilers?
Chuck Norris has the greatest Poker-Face of all time. He won the 1983 World Series of Poker, despite holding only a Joker, a Get out of Jail Free Monopoloy card, a 2 of clubs, 7 of spades and a green #4 card from the game UNO.
In the movie "The Matrix", Chuck Norris is the Matrix. If you pay close attention in the green "falling code" scenes, you can make out the faint texture of his beard.
Chuck Norris actually owns IBM. It was an extremely hostile takeover.
-
Could I use graphical resource builders and decompilers?
Chuck Norris has the greatest Poker-Face of all time. He won the 1983 World Series of Poker, despite holding only a Joker, a Get out of Jail Free Monopoloy card, a 2 of clubs, 7 of spades and a green #4 card from the game UNO.
In the movie "The Matrix", Chuck Norris is the Matrix. If you pay close attention in the green "falling code" scenes, you can make out the faint texture of his beard.
Chuck Norris actually owns IBM. It was an extremely hostile takeover.
Could I use graphical resource builders and decompilers?
Yes, you can. The point of this exercise is to get you familiar with how to build projects manually without having to rely on the IDE. I don't recommend this approach for production scenarios, of course, but it can be really useful if you want to understand the processes that the IDE does behind the scenes. In other words, you should be "one with the compiler" :)
Do you know...LinFu?
-
I've done this too, several years ago (very late 90's) when developing a C/C++ application. error rates were very high for a variety of reasons - sloppiness was one of them. We removed the compiler and made the developers give their code to a build manager for compilation. It took about a week of swearing and frayed tempers but their quality improved dramatically because it really made them think about what they were doing. By the end of the week code was compiling and working first time. We even had a pipeline going, with fixes, additions and tests all being shoved down the pipe. Most agreed it was a worthwhile exercise and they certainly never forgot it. Those of us with grey (or no) hair will have worked like this long ago. I remember in the mid 80's it took more than 24 hours to completely compile aircraft simulations for array processors (what?), and the only editor being EDT or VI. Aye, we were lucky.
Member 4675523 wrote:
will have worked like this long ago
Yes, and we're much better off because of it. I even worked at place where the testers had to build the code as the first test and would kick it back if it didn't compile clean.
-
If you've ever watched this show[^], you've probably seen people depriving themselves from the most common things that they take for granted. Now, aside from your day job, what would happen if you forced yourself to use only command-line build tools (such as NAnt, NUnit, and MSbuild) for your personal projects at home? At the end of thirty days, how would that change the way you write code? Here are the rules: -You cannot use any IDE to build your personal code (that means no VS2008, SharpDevelop, MonoDevelop, or any other IDE out there). "Personal code" is any code that you write as a hobby. * -You *can* use graphical text editors with syntax highlighting, but they CANNOT have any form of Intellisense or code completion. -You must use either NAnt or MSBuild, or the command line compiler for your favorite language to build your projects. *You can, of course, use any tool you wish if it is a work-related task. Everyone here has to make a living, somehow. :) Right now, this idea is just on the drawing board, but I figured that I'd post the basic rules for the challenge to the CP community and see if I can get it refined before I take the challenge myself. Depending on the feedback, I'll either blog about it or put up a series of articles on CP regarding "Kicking the IDE Habit". So what do you guys think? Do the rules seem fair enough? Anyone else want to take the challenge with me?
Do you know...LinFu?