xbox786
2014-02-08 11:36:10 UTC
I learned C# in Visual Studio like 5 years ago. Back then, I didn't know what class is, what is a method or a function, what are the files involved. All I did is install the express edition from their site, started a new project as Windows Application Form, and the GUI is presented. I just dragged a label from the available components and change the Text property to "Hello World" and clicked run. That is how I created my first hello world program without even knowing that there it is a programming language and and there are codes involved.
Then I dragged a button and selected the MouseClick event. The coding window appeared providing me the opportunity to define what happens when the button is clicked. There I learned that this is what coding is. There I started my programming journey. I learned that all those labels and buttons are classes and each button I create is an object. I then attempted to create my own class and learned the concepts. I started creating UI components dynamically the same way I would create an object of any other classes. Today, after five years, I know how to create a simple mine sweeper game using multi threading and know how to interact with multiple forms using pointers to objects, but I learned all these one at a time in the correct order.
I am trying to use IntelliJ to create the same programs that I can easily create in VS in like 5 minutes. Below are something that I hated and don't understand why it is like that:
1) The first thing that blocked me is that I didn't have JDK installed. I had to at least go to a website to know where to install JDK from and how to make IntelliJ point to the correct JDK directory. This is not a big thing that I should be complaining about, but my point is why IntelliJ does not come in a package with JDK installed if this is an essential step?
2) Next, when I create a new project, it just showed me the project window with the necessary files. This means I have to know about the file structure and which files are responsible for what action to some extent.
3) Next, I had to create a GUI by going through an online tutorial. I like the Windows Form Application in VS because the GUI is presented at beginning ready for you to drag and drop. Isn't that how human brain thinks, first visualize how the app would look, then think how it will function? I do not remember going through any tutorials when working in VS.
4) I also hate how the tutorial for creating the hello world application teaches the concept of classes in order to make me create this simple newbie app. This is not a deal for me (I already know how class works), but if I were to teach programming to a newbie, am I suppose to teach him the concept of class before teaching him how to create simple functions or even simple for and while loops?
5) Why does a newbie program such as hello world will require a tutorial? I learned VS with Windows Form at first, then learned console. I didn't have to take any online help until I was stuck with multiple form interactions with object pointers, creating multiple threads, and using delegates. I automatically learned how classes works just by clicking Add Class and realizing that I can organize my functions there. Later of course, I was able to apply all the programming concepts such as static classes, inheriting class, information hiding, etc.
6) I wanted to create a simple moving button which I created in VS when I was first learning it. The first thing where I am stuck is the fact that IntelliJ use grid layout. In VS, I used the location property to smoothly move a button so that clicking it is harder (it has no use, but I want to create it just for fun). The grid layout (or any other layout) does not allow me to freely place UI objects anywhere I want. I use these capabilities to create a brick breaker game where I would create a Graphics circle object as a ball and make it bounce when it reaches the wall.
I know once I get a hang, I will stop using VS. But I need serious help just to get started.