As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am working as a PhD student developing scientific/engineering simulations and algorithms to be tested in these simulations. These days the first student started to work on my project (for his Bachelor thesis) and I am wondering: how should I organize the project now?
I think I have some good C++ knowledge (although I still want to improve every day) and the code contains some design patterns, lots of templated classes etc. These techniques are new to the student and I wonder if it's a good idea to have him work directly in the trunk of the project.
Do you have any experiences what happens if programming newbies and more experienced programmers are mixed? Does the code get messed up or do the newbies learn more by this? Is it wise to have a branch for the student to test his algorithms and maybe merge them into the trunk later? Should I first give him a book like The Pragmatic Programmer for reading (better suggestions?)?
Constant code reviews are an excellent way of a) improving the quality of committed code and b) helping the newer programmers get up to speed, integrate and rapidly learn.
We use code reviews and it really does help in so many ways.
Edit: Another advantage of code reviews is that it gives people a chance to describe why they did something the way they did - code reviews are a two-way process, and both parties can benefit from them. Remember, jsut because they're new, doesn't mean they don't have something to teach you.
So long as the students understand that code reviews are a well-accepted industry practice with no small amount of research backing it up, that it isn't intended to babysit newcomers, and that even experienced programmers use code reviews, it should work out fine.
If it helps, have them take part code reviews of more experienced programmers.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
What is the most popular design pattern in web app?
I know that in asp.net mvc often used dependency injection and repository, but I want to know which additional patterns can I use in web apps. And it would be best if you give me sample of situation in which I can use patterns, or give code snippet.
Most of the design patterns we've developed as software engineers over the last few decades are still applicable for the situations they were designed for. Depending on your needs you will use most of these in web apps at some point.
http://geekswithblogs.net/subodhnpushpak/archive/2009/09/18/the-23-gang-of-four-design-patterns-.-revisited.aspx
Also below is a link to a site that shows quite a few of these patterns and has explanations / examples. They have their own product, which the site is a shop front for, but the site does have examples and contain code samples so may be worth a visit if you feel like it. most in C#
http://www.dofactory.com/Patterns/Patterns.aspx
Singleton is the most popular pattern. It is also one of best know anti-pattern (patterns that are considered to be harmful).
Every newbie uses it, because it lets you use global state, that looks like object oriented code. It also lets you avoid, that confusing dependency injection thing.
As for the "Gang of Four" book, there has been a movement by some uneducated people to remove the Singleton pattern in latest editions, but the attempts has been successfully thwarted.
Or if you have $28... C# Design Strategies with Jon Skeet
I haven't watched it but I do plan to buy it soon.
edit: IMHO the most popular design pattern in asp.net web development is the Smart UI anti-pattern ;)
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I'm a college student trying to make a web community with friends. Although we are not experienced developers by any means, we have taken courses on JAVA and some web programming languages (PHP, JAVASCRIPT, CSS, HTML).
At this point, we need to decide on a web framework and begin learning. I have narrowed down my list to Ruby on Rails and Codeigniter, but I am really not sure why I should pick one over the other.
Thanks in advance.
Pick the one you want to learn and go with it.
I will personally recommend Rails because:
it teaches you a lot of best practices if you do things the Rails Way™
Ruby is a fun, easy-to-learn, expressive language
the community is really big, enthusiastic, and very helpful
there's great books and tutorials available all over the internet
There is nothing like the good framework. It highly depends on, in no particular order :
your skills
your tastes (Yes, it does matter a lot)
your willingness to learn
technical constraints. Your hosting company may support only Ruby or only PHP
...
I personally had the occasion to develop with CodeIgniter and I pretty much enjoyed it. It is light, well documented and leaves you with a lot of freedom.
I also have a good friend for whom Ruby On Rails is the only framework deserving the name of "framework".
If your project is ambitious, a good idea to make your point could be to make a trivial application like a TODO list with both framework and then pick the one that fits your need.
Hope this helps.
If there is no time constraint (as you need to learn both ruby lang and rails framework) and want to know the best practices, i would recommend RubyonRails.
If you have time constraint, then go ahead with Codeigniter. It is easy to learn and well documented.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I want to build an e-commerce application with a bunch of features, as multi-language and currency support and some social interaction between the users (it is a fashion store).
I am doing this basically for learning purposes, but also with the hope of earn a little money with it afterwards.
My question is, do you think with all the solutions out there, it is still worth to start from scratch? Which are the pros and cons, and which frameworks do you suggest?
I tend to use ruby on rails, but I know there are also Java and PHP based solutions, so I wonder about the pros and cons of them here as well...
Thanks in advance.
You can make money selling it to non-developer clients for sure. But if you are trying to make a business of an e-commerce platform you will find rough open source competition.
Check out these options:
PHP:
OpenCart
OSCommerce
Magento
Rails:
Spree
In my case I prepared a web-shop application out of one of the open source ones.
Now for learning it is a good experience start from scratch but it will be difficult to make money of it as a platform unless you do it open source and get paid in advertisement
You'll never learn more than when you build an app that does something you want to do for yourself. If your goal is to learn, go for it.
That said, if your goal is to make money selling stuff, you probably should skip ahead to selling -- use an existing platform like Shopify or Spree and start worrying about what you're going to sell and who is going to buy it. That's a totally different challenge from software development.
Good luck either way.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I am graduating soon in electrical engineering.
I would like to learn a data-warehousing tool. Which of the following would you suggest I learn to help me advance my career, bearing in mind I don't have a computer science degree?
business objects;
informatica;
hyperion;
datastage
cognos
Data warehousing is becoming more and more commoditized. Those products are just tools (and the tools you list address very separate areas - ETL and business intelligence).
If you are looking to make a career in data warehousing, you really need to get a solid basis in the theory and principles - particularly modelling philosophies and warehouse development lifecycle practices (and dealing with the business stakeholders) - read Inmon and Kimball.
Typically data warehousing is completely different from regular software lifecycle. In DW, you build the system AND THEN you get the requirements. Seriously. The point is to model your DW as best you can, get it into the users' hands and then refactor.
ETL is about as exciting as it sounds, and BI spans a wide range of things from reporting to dashboards to data mining and decision support - and the tools vary in capabilities.
I guess my point is that learning any particular tool is not going to really advance your career except to be able to check a box which might get you a job. Advancing your career comes from solving people's problems (and well) and becoming familiar with as many technologies, tools and techniques as it takes to do that.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I've been considering experimenting with game development and XNA. I'm already an expert C/C++ programmer. I read through some C# books, but haven't done any development in C# yet.
What's a good resource for learning XNA, from the point of view of someone who's already an expert programmer?
I'll second reimers and the creators.xna.com samples as a good way to get a handle on how to quickly whip things up.
On the other side of the spectrum, I highly recommend Nick Gravelyn's Tile Engine tutorials. It's a different approach, as the entire series is presented in video. It seems like a great place for beginners to get started, though new coders might have a bit of trouble with his pace. Having said that, the section on the Content Pipeline (which is an XNA-specific implementation of the pipeline concept) is a good introduction.
Ziggyware also has a good selection of tutorials, some of which are more advanced.
Shawn Hargreaves, one of the XNA's devs, has a great blog that let's you in on the internals of XNA a little more. Check out the archive if there's a topic that interests you in particular.
This is good: http://www.riemers.net/, just keep in mind that navigation is through the bar on the right. I must have been tired because it took me a while to figure it out :-O
Check out the XNA homepage and the tutorials over there, under Community -> Resources. As an experienced programmer you should be able to take it from there.
For more in-depth infos browse the XNA Team's blogs, also linked from the XNA Creators page.
I would say that a library called XNA Debug Terminal should be of some help to you. It is open source and can be setup in seconds. It allows you to see the value of any variable, invoke any method, watch values changing in real-time, and more by simply typing c# code into a terminal-like display that appears atop your game window. Unlike the normal Visual Studio debugger, you can invoke arbitrary code while your game is running. You can find out more about this at http://www.protohacks.net/xna_debug_terminal . This will greatly help you to avoid a lot of frustration while learning XNA.