|
Thanks for the advice, Roger, and your certainly right about the people here being wise and helpful.
|
|
|
|
|
Why?
What did you do before?
|
|
|
|
|
I worked in logistics for many years and as a labourer before that and decided that I needed something which kept my interest and enabled me to keep learning. I have a long interest in programming and never really pursued it, in fact it was something which I contemplated doing when I left high school and in some ways I regretted not pursuing it at that time.
I felt the time was right to make a change, but as per my post, sometimes there are some things you cant do when your older and hence why I am here to get insight.
|
|
|
|
|
I do think there is truth to "Teach Yourself Programming in Ten Years[^]". You are setting out for a profession that thrives on sifting through enormous amounts of fairly new information, and absorbing and keeping a large part of it ready - that's the thing that for most people gets harder once they "have a live" and some years on their back.
Which is meant as a fair warning, but not to dicourage you. Wanting to pursue it, your curiosity is probably your best driving force. I am not sure what "working in logistics" actually entails, but it sure sounds something that can become useful. I do think there's a position for you where you can combine your existing domain knowledge with actual development. It would probably good to seek out a place where you are not "just a code monkey" - likely a small company (or a large one that runs it's depatments like those). Also, keep an eye out for an experienced tutor with a knack for teaching: maybe a peer at work or someone from a local user/developer group. While the internet can be a great ressource, someone actually teaching you is somethign completely different. Maybe via internet and IM it doesn't have to be face-to-face time (I only knwo it wouldn't work as good for me).
I would not wholeheartedly recommend courses or similar. If they are really good, they can propel you forward a good deal, and even if they are only so-so, they can bring some structure in the knowledge you acquire for yourself. However, I've found only two types of courses, neither of which are ideal for you: in-depth compsci education and "teaching out-of-work welders to code" (usually sponsored education programs, or "we should do something with computers"). The former is the long road that - in my not so humble opinion - is a bit late in your life, you should be able to make a living of that a bit earlier. The majority of the latter are usually weeded out at serious interviews, and twend to land in code factories with big employee turnover where they feed the daily WTF.
Your best bet is a stab at becoming a skilled technician who can take responsibility for a small project, or a small part of a larger one, and puts his previous experience in other fields to good use.
good luck, anyway
|
|
|
|
|
I started programming a lot later, so I really don't see the problem.
|
|
|
|
|
I started at 30. I am now 40 I've held down several good jobs, and have started and sold a software company. It's not too late.
Christian Graus
Driven to the arms of OSX by Vista.
|
|
|
|
|
I spent 22 years in the military (aviation electronics but no programming whats so ever). Got a couple undergrad degrees before retiring, and been programming ever since. Hardest part was getting that first job (foot in the door kind of thing). It wasn't the highest paying job, but a heck of a lot better then the military (and safer). I used that to learn and get as much experience as possible.
Still going strong today at almost twice your age.
|
|
|
|
|
i Have passed an string array into string.split function,the target string splits successfully,but i need to get string array information on which string has been split.
|
|
|
|
|
Do you mean you've used the string.Split(string[], StringSplitOptions) and you want to know which character has caused the split?
There isn't an overload that returns that information. You'll have to roll your own method, if you need it a lot you could always create it as an extension method to the string class. Remember there could be 0 to n number of characters that were used so you'll have to return an array or list of some sort.
DaveBTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)Visual Basic is not used by normal people so we're not covering it here. (Uncyclopedia)
|
|
|
|
|
can you help me out to create that own function..
|
|
|
|
|
Your best bet is to examine the particular overload you want in the .NET source[^] and recreate that method with the following alterations.
Create and initialize a List<string> field (eisier than an array as it's dynamic). Everytime a split occurs, check if the list contains that character and if not add it. Give the method a string[] out parameter so you can return the extra data. At the end of the method before you return, call the list's ToArray method and pass the value to the out.
DaveBTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)Visual Basic is not used by normal people so we're not covering it here. (Uncyclopedia)
|
|
|
|
|
Hi,
it is not very clear.
if you want to split a string s1 using a collection of split characters (say all chars in string s2)
and are interested in which split characters actually occur in s1, then this strange snippet
offers exactly that; I leave it to the reader to discover how it works!
string[] sa=s1.Split(string.Join("", s1.Split(s2.ToCharArray())).ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
|
|
|
|
|
Very cool Luc
DaveBTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)Visual Basic is not used by normal people so we're not covering it here. (Uncyclopedia)
|
|
|
|
|
Its Looking Really cool,,thanks for Help but one thing more i have have string array collection, not char array collection,so how can i do this with string array collection..
|
|
|
|
|
if you want the result to be a char array, you have to turn my result into a char array;
I have already shown how that is done. It is just more of the same stuff.
|
|
|
|
|
Luc Pattyn wrote: this strange snippet
offers exactly that
neat
|
|
|
|
|
I'm glad I don't have to maintain that piece of code.
Curious to see what a LINQ-based solution would read like.
|
|
|
|
|
The good thing is it doesn't need any maintenance ; it could be implemented as an extension method to the string class, I would suggest it gets named RemoveNot(s1,s2): remove all chars from s1 that are not in s2.
No idea what LINQ can do here.
And also no idea what regex could do (I was surprised no one ever mentioned it so far).
I am pretty sure both of them would look even worse, and have lower performance.
A lambda expression might come in handy, haven't really considered it (am still working in .NET 2.0)
|
|
|
|
|
Luc Pattyn wrote: And also no idea what regex could do (I was surprised no one ever mentioned it so far).
Getting there, just have to read the replies so far first...
Despite everything, the person most likely to be fooling you next is yourself.
|
|
|
|
|
|
This code will split the string, and give you the result as two arrays; one array with the regular split result, and one array with the splitters that was used.
The usedSplitters array is one item shorter than the words array. If no splitters were found, the words array contain the original string, and the usedSplitters array is empty.
string source = "asdf,asdf;;;asdf,asdf::asdf..asdf";
string[] splitters = { "..", ",", ";;;", "::" };
string pattern = "(" + string.Join("|", splitters.Select(s => Regex.Escape(s)).ToArray()) + ")";
MatchCollection matches = Regex.Matches(source, pattern);
string[] words = new string[matches.Count + 1];
string[] usedSplitters = new string[matches.Count];
int pos = 0;
for (int i = 0; i < matches.Count; i++) {
words[i] = source.Substring(pos, matches[i].Index - pos);
usedSplitters[i] = matches[i].Value;
pos = matches[i].Index + matches[i].Length;
}
words[matches.Count] = source.Substring(pos);
Despite everything, the person most likely to be fooling you next is yourself.
|
|
|
|
|
I like the concept, my Visual Studio targetting 3.5 does not know the Select method though.
Anyway, it is not one of those obscure regex applications...
|
|
|
|
|
I think that you need using System.Xml.Linq; to get the Select extension.
Here's a way to create the pattern without it:
StringBuilder builder = new StringBuilder().Append('(');
bool first = true;
foreach (string s in splitters) {
if (first) {
first = false;
} else {
builder.Append('|');
}
builder.Append(Regex.Escape(s));
}
string pattern = builder.Append(')').ToString();
Despite everything, the person most likely to be fooling you next is yourself.
|
|
|
|
|
the original works like a charm once I added using System.Linq;
Without Select, I would write
StringBuilder builder = new StringBuilder().Append('(');
string sep="";
foreach (string s in splitters) {
builder.Append(sep).Append(Regex.Escape(s));
sep="|";
}
string pattern = builder.Append(')').ToString();
avoiding the extra state variable and if-else test.
Thanks.
|
|
|
|
|
Is it better? You are just replacing one state variable with another, making the value of the variable double as both state and value.
Despite everything, the person most likely to be fooling you next is yourself.
|
|
|
|