What to start learning?
-
I don't understand your logic. I use Chrome for web browsing, Outlook for emails, Lync for calls and screen sharing, Visual Studio for writing code, Teams for team chat (used to use Slack), Word for writing documents, Excel for spreadsheets and so on - there's no need to combine it all in one app. There's no need to combine even some of it in one app. Where tool proliferation can cause a problem is if you have multiple tools that do the same job. For instance, for communication we have email, Lync, Teams and Yammer, which is too much. The solution is to agree on just one of them for the main method of communication. We have settled on Teams for most stuff, with Lync for calls and email for stuff that doesn't really fit within Teams. We mostly ignore Yammer.
Regards Nelviticus
If they were clear and unconnected services I would agree. Today we have several major platforms. We use a CRM, a task/project management software suite, a file sharing application, a chat program, and email etc. For right now the file sharing, chat, and email are individual needs I have no intentions of trying to change over from. However, the challenge is we are a project based company. So our business development team has to log all types of information about the CRM. And our opportunities have several different phases all of which have different revenue opportunities attached to them. I have yet to find any CRM that can handle this so we have to duplicate tons of information. When the deal is signed it flips over to our project management / task management platform. All of that history, all of that data, all of that information is essentially lost or has to be recreated. The systems dont talk to each other. It is like trying to learn the project all over again. Our bus development team has to CONSTANTLY be updating and uploading and modifying and tweaking in both. On top of all of their other activities. It is a bear for responsibility. Nothing out of the box starts to merge those two pieces. Seperately, we are not an architect or engineer so software geared for those individuals does not work out of the box for us. But much of our process is replicated from them so we need the functionality of certain tracking elements. but again nothing out of the box has this since we do not fit into a typical industry platform. It yields a lot of inefficiencies and duplication of data and information.
-
I'm quite sure that you are not going to follow my recommendation (noone does!), but I'll present it anyway: Forget all sorts of coding for a while. For quite a while! All about VB, C#, SQL, ... Spend a lot of effort on exactly defining your tasks, and the information you are handling. How one piece of information is tied to another pice. Which is the 'master', which is a copy of a master, or derived from some master(s). Which information is required by which tasks/operations. All that is comes under the umbrella "Data modelling". Try to stay away from putting it into code (including SQL) until you have a good, complete understanding of all the information you are handling in your business. You may use formal or semi-formal data modelling methods (I am myself very fond of Entity-Relationship, ER, due to several very succesful projects using ER - but it isn't exactly fashionable today!), but a less formal method is still a lot better than bringing in coding languages. Once you have completed the data model, with all sorts of relationships and restrictions, and described how your procedures use and manipulate the various data entities, writing the actual code is a job for an inexperienced teenager :-). (That is to say: All the difficult problems have been solved before you start coding.) Most people grin at such proposals: Of course we already know which data we are handling. We know where we need the data! ... But that is until you start creating a data model. As soon as you start asking details about which entities may be multi-valued, why seemingly the same information appears in two places in the model, which is the primary value, which are derived values, why an operation addresses entities from different parts of the model where you have not identified a relationship between them, and so on. Several times I have had people with 20-40 years of working experience in their professional field light up: "Is that how it fits together? Yes, you are right!" They have seen all the trees, but never considered the forest. That's what data modelling is for. Understanding the problem you need to solve before you start solving it definitely not in the modern 'agile' style. Nowadays, people say: "OK, so you've got a problem. Let's first start with 'int main(int argc, char** argv) {}' ...Now we are going at it! Will you try to describe your problem, and I can jot down some rudimentary code for solving it, as you are talking, and we will fill in more code as the problem becomes clearer." That's
Not ignoring this at all. I think there is a LOT of merit to this for a few reasons..... 1. Realistically will I ever get to really build this thing, probably not. So if I ever decided to go the custom route I have a good benchmark to share with a developer on what I am looking to accomplish. 2. I do agree as anytime I have dabbled in coding I just start, and quickly it starts to expand into needing this and that and the other thing and it loses focus. Giving myself a road map would be helpful. So I might go this route.... What do you typically do? is it a narrative summarizing the workflow? Picking out the nouns as my classes and my verbs as my actions? How do you actually map it out? Is there a decent piece of software that helps visualize it all vs just trying to type it in word?
-
If you have learned VB6, then I'd suggest that you learn C# rather than VB.NET. VB6 and VB.NET are too similar, and it's easy to get into old habits and use things you know instead of the newer, more flexible versions. C# avoids that by having a pretty different syntax. Get a book - or better a course - and give it a go! The tools are all free, just google "Visual Studio Community Edition" and download direct from Microsoft.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
I concur. The jump from VB to C# is not only a fairly simple transition in the grand scheme of things, you will find that as coding has evolved the days are gone where you have a small stack of reference books and therein you have all your tools. Your greatest asset are the references that you'll gather from online resources (vast majority without fee) and others who wrestle with code segments. While your business may be unique, your code requirements almost without fail will have been accomplished and documented by someone and published on the net. When the exception to this become evident, the knowledge and experience you gained from these references will generally show the path for your to accomplish the objective you seek. There are some exciting language options out there and many might prove to be helpful to you as you go along, but the transition between VB to C# will be not only liberating, but provide a good basis on which to potentially explore other options later as well.
-
So I am in my mid thirties and a COO of a small business. Way back when in High School I took some programming classes and loved it. VB6. Fast forward to college and started in computer science before I hated a few professors in a row and switched to business school. So In ever followed through on what was my intent at that point of being a programmer / developer. Now, I see a real need for my business for a centralized application that can handle a multitude of things. Basically, we are a very unique company and not out of the box software fits all of our needs. I am realistic and I know I am not going to create an end all software application for my company. I totally get that. This is a side hobby for me (and I have kids too so we'll see how much time I have). BUt I have always loved problem solving, computers, and the thought of programming really intrigues me. Since I knew VB6 (based on high school classes, far from an expert) I am inclined to think VB.net is the best place to start and learn. But for me to learn through a project, if you are recommending to a newbie who wants to dabble with one application and never do this for a living... What would you recommend to them studying, learning, and playing with? It would need to be a database application too so that factors in. Web or desktop I dont know. I am inclined to think web takes so much of the complication out of connectivity and end user experience. But is it powerful enough to really do thinks. Here would be my start: Right now we take meeting minutes manually in a word based template. This software would have data entry for the minutes, keep it organized, and automatically distribute to all participants after the meeting. First feature. Second feature is a shop drawing log and submittal tracker. So when we make something custom, we prepare a detail drawing. Send it to an architect for approval. When it is approved sned to the manufacturer to release into production. Track all of these submissions etc. That would be number two. I would start with those two small features and continue slowly to add one at a time. Just a slow release of new functionality as our team realizes they need something. Recommendations?
and do something with an arduino or a raspberry pi
-
So I am in my mid thirties and a COO of a small business. Way back when in High School I took some programming classes and loved it. VB6. Fast forward to college and started in computer science before I hated a few professors in a row and switched to business school. So In ever followed through on what was my intent at that point of being a programmer / developer. Now, I see a real need for my business for a centralized application that can handle a multitude of things. Basically, we are a very unique company and not out of the box software fits all of our needs. I am realistic and I know I am not going to create an end all software application for my company. I totally get that. This is a side hobby for me (and I have kids too so we'll see how much time I have). BUt I have always loved problem solving, computers, and the thought of programming really intrigues me. Since I knew VB6 (based on high school classes, far from an expert) I am inclined to think VB.net is the best place to start and learn. But for me to learn through a project, if you are recommending to a newbie who wants to dabble with one application and never do this for a living... What would you recommend to them studying, learning, and playing with? It would need to be a database application too so that factors in. Web or desktop I dont know. I am inclined to think web takes so much of the complication out of connectivity and end user experience. But is it powerful enough to really do thinks. Here would be my start: Right now we take meeting minutes manually in a word based template. This software would have data entry for the minutes, keep it organized, and automatically distribute to all participants after the meeting. First feature. Second feature is a shop drawing log and submittal tracker. So when we make something custom, we prepare a detail drawing. Send it to an architect for approval. When it is approved sned to the manufacturer to release into production. Track all of these submissions etc. That would be number two. I would start with those two small features and continue slowly to add one at a time. Just a slow release of new functionality as our team realizes they need something. Recommendations?
You really have two questions: "What should I learn?" and "What does my company need?" I applaud your interest to return to your early ambitions of programming. Despite what people say, it's never too late to learn. I would recommend Python as a great place to start. Simple but powerful. But that's not what your company needs. You say your business is unique, but what you have described are generic business needs that just about every company I know needs to address in one form or another. There really are tools available. Investigate the Atlassian Suite. (Confluence for meeting minutes with auto-distribution; JIRA for issue tracking and workflows). Both are very reasonably priced for small teams.
-
So the general thought is PostGres or MySql for a database back end? If, and that is a big if, this ever became something we really were able to roll out and use we could be talking about 40 people accessing data. So not thousands, but not two. I have done visual basic connections to access in the past, and thought about that route (as this is a simple application at least at the onset) but figured if I start with a bit more capability, I might be WAY better off long term in terms of conversion. I also was tempted to just look into azure or something like that so it is a hosted scenario elsewhere and I pay Microsoft to handle the BS. I just need to connect to it and that way people that travel dont need VPN to connect to the software and if I get web based I dont have to deal with hosting and security issues.
-
So I am in my mid thirties and a COO of a small business. Way back when in High School I took some programming classes and loved it. VB6. Fast forward to college and started in computer science before I hated a few professors in a row and switched to business school. So In ever followed through on what was my intent at that point of being a programmer / developer. Now, I see a real need for my business for a centralized application that can handle a multitude of things. Basically, we are a very unique company and not out of the box software fits all of our needs. I am realistic and I know I am not going to create an end all software application for my company. I totally get that. This is a side hobby for me (and I have kids too so we'll see how much time I have). BUt I have always loved problem solving, computers, and the thought of programming really intrigues me. Since I knew VB6 (based on high school classes, far from an expert) I am inclined to think VB.net is the best place to start and learn. But for me to learn through a project, if you are recommending to a newbie who wants to dabble with one application and never do this for a living... What would you recommend to them studying, learning, and playing with? It would need to be a database application too so that factors in. Web or desktop I dont know. I am inclined to think web takes so much of the complication out of connectivity and end user experience. But is it powerful enough to really do thinks. Here would be my start: Right now we take meeting minutes manually in a word based template. This software would have data entry for the minutes, keep it organized, and automatically distribute to all participants after the meeting. First feature. Second feature is a shop drawing log and submittal tracker. So when we make something custom, we prepare a detail drawing. Send it to an architect for approval. When it is approved sned to the manufacturer to release into production. Track all of these submissions etc. That would be number two. I would start with those two small features and continue slowly to add one at a time. Just a slow release of new functionality as our team realizes they need something. Recommendations?
I would recommend you download: [Jobs Site Starter Kit for ASP.NET 3.5 | BinaryIntellect Knowledge Base](http://www.binaryintellect.net/articles/a203c824-aec1-41b7-b3ec-49a15d5c9ebb.aspx) It is very well organized and allows you to quickly learn about Business and Data Object Layers, as well as persisting data to a SQL Server Database. It's VB.NET so would be more familiar to you. At this point I think it's more importante to learn about concepts and technologies, like OOP, Layered Arcitecture, ADO.NET, SQL Server etc. Once you master this, it will be relatively easy to learn C# as well. Having said that VB.NET is far from being dead or inferior to C#. Read up about it on Google. There may be other Starter Kits where you can learn about what I pointed out above, but this is one I checked out myself years ago and it helped me a lot to see how things work in real (programming) life.
The perfect woman: cooks good food and never says no in the middle of the night.
-
If they were clear and unconnected services I would agree. Today we have several major platforms. We use a CRM, a task/project management software suite, a file sharing application, a chat program, and email etc. For right now the file sharing, chat, and email are individual needs I have no intentions of trying to change over from. However, the challenge is we are a project based company. So our business development team has to log all types of information about the CRM. And our opportunities have several different phases all of which have different revenue opportunities attached to them. I have yet to find any CRM that can handle this so we have to duplicate tons of information. When the deal is signed it flips over to our project management / task management platform. All of that history, all of that data, all of that information is essentially lost or has to be recreated. The systems dont talk to each other. It is like trying to learn the project all over again. Our bus development team has to CONSTANTLY be updating and uploading and modifying and tweaking in both. On top of all of their other activities. It is a bear for responsibility. Nothing out of the box starts to merge those two pieces. Seperately, we are not an architect or engineer so software geared for those individuals does not work out of the box for us. But much of our process is replicated from them so we need the functionality of certain tracking elements. but again nothing out of the box has this since we do not fit into a typical industry platform. It yields a lot of inefficiencies and duplication of data and information.
Solve the problems, don't write code. Based on this post, you might investigate SalesForce.com. I am not sure which CRM you are using. I have not used SF. You could probably contract someone to help you implement what you do need on SF if it does not have it. Having business development and business execution on two different platforms sounds like a WTF. As a COO, hire someone to help you figure it out and design a solution for your company. If there is sure ROI, then execute it. If you do want to learn to program, write a few projects for a hobby or something. I would not experiment on your company. Check out MIT App Inventor for a way to get something up and running quickly on Android platform. My kid implemented a sports statistic tracking program with uploads to Google Fusion Tables (combined stats with queries) in 30 hours. They also implemented a 100% non-code solution for a medium complexity problem given as a homework assignment. The school rolled out the solution for teachers to use. As a side note, someone mentioned using GIT for versioning documents. If your file sharing service does NOT support versioning and history, then ditch it for a service that does.
-
If they were clear and unconnected services I would agree. Today we have several major platforms. We use a CRM, a task/project management software suite, a file sharing application, a chat program, and email etc. For right now the file sharing, chat, and email are individual needs I have no intentions of trying to change over from. However, the challenge is we are a project based company. So our business development team has to log all types of information about the CRM. And our opportunities have several different phases all of which have different revenue opportunities attached to them. I have yet to find any CRM that can handle this so we have to duplicate tons of information. When the deal is signed it flips over to our project management / task management platform. All of that history, all of that data, all of that information is essentially lost or has to be recreated. The systems dont talk to each other. It is like trying to learn the project all over again. Our bus development team has to CONSTANTLY be updating and uploading and modifying and tweaking in both. On top of all of their other activities. It is a bear for responsibility. Nothing out of the box starts to merge those two pieces. Seperately, we are not an architect or engineer so software geared for those individuals does not work out of the box for us. But much of our process is replicated from them so we need the functionality of certain tracking elements. but again nothing out of the box has this since we do not fit into a typical industry platform. It yields a lot of inefficiencies and duplication of data and information.
microsoft access database. you have some vb knowledge so this could be a good bridge. start with this as a tool. (i'm with the posters who caution against writing (too much) code before trying a few things.) you can create a database with a front end for users (yourself only, to start) then decide if a db/ui is a good approach. experiment with data models to see if a db will hold what you need, the way you need it. i bet it will. access can be very underrated. but you do have to understand data table relationships. even playing around with tables with no ui/forms, etc could be very beneficial.
-
So I am in my mid thirties and a COO of a small business. Way back when in High School I took some programming classes and loved it. VB6. Fast forward to college and started in computer science before I hated a few professors in a row and switched to business school. So In ever followed through on what was my intent at that point of being a programmer / developer. Now, I see a real need for my business for a centralized application that can handle a multitude of things. Basically, we are a very unique company and not out of the box software fits all of our needs. I am realistic and I know I am not going to create an end all software application for my company. I totally get that. This is a side hobby for me (and I have kids too so we'll see how much time I have). BUt I have always loved problem solving, computers, and the thought of programming really intrigues me. Since I knew VB6 (based on high school classes, far from an expert) I am inclined to think VB.net is the best place to start and learn. But for me to learn through a project, if you are recommending to a newbie who wants to dabble with one application and never do this for a living... What would you recommend to them studying, learning, and playing with? It would need to be a database application too so that factors in. Web or desktop I dont know. I am inclined to think web takes so much of the complication out of connectivity and end user experience. But is it powerful enough to really do thinks. Here would be my start: Right now we take meeting minutes manually in a word based template. This software would have data entry for the minutes, keep it organized, and automatically distribute to all participants after the meeting. First feature. Second feature is a shop drawing log and submittal tracker. So when we make something custom, we prepare a detail drawing. Send it to an architect for approval. When it is approved sned to the manufacturer to release into production. Track all of these submissions etc. That would be number two. I would start with those two small features and continue slowly to add one at a time. Just a slow release of new functionality as our team realizes they need something. Recommendations?
I am a programmer myself. I strongly recommend C# for your immediate needs. You will find that it is similar to VB in some ways which will make your older experience relevant. Furthermore, C# is strongly typed and typesafe so it is much easier to debug than many languages. C# is well documented and therefore very easy to re-learn programming with. This language can also be used to easily develop the types of applications you are referring to in your post. To top this off, you can get a free compiler from microsoft to get started, so you don't really need to invest a lot of money to get started learning.
-
I am a programmer myself. I strongly recommend C# for your immediate needs. You will find that it is similar to VB in some ways which will make your older experience relevant. Furthermore, C# is strongly typed and typesafe so it is much easier to debug than many languages. C# is well documented and therefore very easy to re-learn programming with. This language can also be used to easily develop the types of applications you are referring to in your post. To top this off, you can get a free compiler from microsoft to get started, so you don't really need to invest a lot of money to get started learning.
Thanks, and thanks to all who are responding. Generated way more conversation compared to what I expected lol. To summarize for everyone (in terms of my capabilities) I spent some time with VB6 and later played around with VB.net and database connectivity. I certainly understand OOP and basic concepts and brushing off some dust can handle some code in VB.Net so I am not just learning from the ground up. I have never developed a full enterprise level piece of software nor am I truly expected too. I really want to just create some isolated functionality that is not available in out of the box solutions so I can incorporate it into. With that being said, it sounds like it would be time well spent to transition to C# for further future experience and there are just better resources out there for help. What are thoughts on backend support? Maybe while it is very limited I am just better off on using access and keeping it simple and scaling it up eventually? Is it feasible to use a database on office 365 so I dont need VPN connectivity to my office?
-
So I am in my mid thirties and a COO of a small business. Way back when in High School I took some programming classes and loved it. VB6. Fast forward to college and started in computer science before I hated a few professors in a row and switched to business school. So In ever followed through on what was my intent at that point of being a programmer / developer. Now, I see a real need for my business for a centralized application that can handle a multitude of things. Basically, we are a very unique company and not out of the box software fits all of our needs. I am realistic and I know I am not going to create an end all software application for my company. I totally get that. This is a side hobby for me (and I have kids too so we'll see how much time I have). BUt I have always loved problem solving, computers, and the thought of programming really intrigues me. Since I knew VB6 (based on high school classes, far from an expert) I am inclined to think VB.net is the best place to start and learn. But for me to learn through a project, if you are recommending to a newbie who wants to dabble with one application and never do this for a living... What would you recommend to them studying, learning, and playing with? It would need to be a database application too so that factors in. Web or desktop I dont know. I am inclined to think web takes so much of the complication out of connectivity and end user experience. But is it powerful enough to really do thinks. Here would be my start: Right now we take meeting minutes manually in a word based template. This software would have data entry for the minutes, keep it organized, and automatically distribute to all participants after the meeting. First feature. Second feature is a shop drawing log and submittal tracker. So when we make something custom, we prepare a detail drawing. Send it to an architect for approval. When it is approved sned to the manufacturer to release into production. Track all of these submissions etc. That would be number two. I would start with those two small features and continue slowly to add one at a time. Just a slow release of new functionality as our team realizes they need something. Recommendations?
All of what you describe is readily available on the internet on a "subscription" basis; usually about $5 per month: Collaboration and / or Document Sharing. One could be up and running in a day or two; develop it yourself, and it may never get done. I recommend these solutions to clients and then bill for support; doesn't pay to "develop" these services.
"(I) am amazed to see myself here rather than there ... now rather than then". ― Blaise Pascal
-
Thanks, and thanks to all who are responding. Generated way more conversation compared to what I expected lol. To summarize for everyone (in terms of my capabilities) I spent some time with VB6 and later played around with VB.net and database connectivity. I certainly understand OOP and basic concepts and brushing off some dust can handle some code in VB.Net so I am not just learning from the ground up. I have never developed a full enterprise level piece of software nor am I truly expected too. I really want to just create some isolated functionality that is not available in out of the box solutions so I can incorporate it into. With that being said, it sounds like it would be time well spent to transition to C# for further future experience and there are just better resources out there for help. What are thoughts on backend support? Maybe while it is very limited I am just better off on using access and keeping it simple and scaling it up eventually? Is it feasible to use a database on office 365 so I dont need VPN connectivity to my office?
If you need more power, ASP.NET is used as a backend support for C#. It is used more for WPF for more complicated GUI's. You can start with Windows Forms for more simple GUI's.
-
Not ignoring this at all. I think there is a LOT of merit to this for a few reasons..... 1. Realistically will I ever get to really build this thing, probably not. So if I ever decided to go the custom route I have a good benchmark to share with a developer on what I am looking to accomplish. 2. I do agree as anytime I have dabbled in coding I just start, and quickly it starts to expand into needing this and that and the other thing and it loses focus. Giving myself a road map would be helpful. So I might go this route.... What do you typically do? is it a narrative summarizing the workflow? Picking out the nouns as my classes and my verbs as my actions? How do you actually map it out? Is there a decent piece of software that helps visualize it all vs just trying to type it in word?
My favorite modelling tool, the age-old ER, Entity-Relationship model, focuses strongly on the information structures, rather than the workflow. It is essentially a semi-formal drawing technique - and of course there are a number of "dialects". Some computer based tools are available, often forcing you to use a specific dialect. The one I have used most recently is called yEd[^] - it is not specifically for ER, but supports it well. An ER model is a graph with "entities" (data objects) forming the nodes, drawn as rectangular boxes. Actually, the entity is like a class definition; a "customer" entity is any customer object. Relationships to other entiries are edges, drawn as arrows. Arrowheads, both ends, indicate how many objects are involved in a relation: A "bill" object and a "customer" object has an n:1 relationship, indicated by different heads. Notation exists for "0 or more", "exactly 1", "1 or more" (more specific cases, like 1 to 3, is indicated textually by the arrowhead). For straightforward relationships, a textual label on the edge is sufficient it is always double, indicating each entity's view of the relationship, such as a customer "bought" what the bill specifies; this "was bought by" a customer. If you need to handle data about the relationship itself, which are not properties of the entities (such as the date when the relationship was established), or a three way relationship (such as who endorsed it), you can draw it as a diamond with arrows to two or more entities, and attributes associated with the relationship. Two entities may have several distinct relationhips. Often, splitting up a diffusely specified relationships into distinct one can be enlightening, e.g. "business connection" going to "Buys products from", "Provides programming services to" and "Owns shares in" - different procedures will need to relate to the relationship in different ways. Entitiy attributes are either, in simple models, drawn as ovals attached to the entity, or, in larger models, listed inside the entity rectangle - this illustrates one dialect variation! Another variation (more in modelling style than language) is how much you break down complex data into distinct entities: Is a "car" one single entity, or should you split off an "engine" entity with an "is powered by / powers" relationship? If otherwise identical cars differ only in engine selection, and/or each e