How to handle technical challenges in work?
-
Dear all, I need a bit of help here. I feel like being surpassed by junior staff in the company. One day the client has a requirement. Both me and the junior staff do not know how to do it. I rely more on books or talk to other coworkers for hint. The junior staff, however, are very good at using Google. After a bit of time, he is able to crawl / find a good solution. I would like to ask what you do when you face a technical challenge. If you use Google, how would you get to the answer fast? In other words, how are you able to know what the keywords are to type in Google? (Of course, if it is related to some specific terms, just type that in. But from time to time, it seems like I have to type in a bit more than that. And I think I am not good at this.) Example would be welcome.
In short: intuition, experimentation, research (Google/books/asking around - whichever is likely to be quicker for the subject), followed by proof of concept prototyping. Add in a dose of dogged bloody mindedness and you're done. A couple of recent cases in point:
- I had to update a dev build of our Visual Lint[^] plug-in to support the Atmel Studio 6[^] IDE a couple of weeks ago, and although the Atmel IDE is based on Visual Studio, there are parts of the interface which are different, and of course it uses a custom project file format (which we have to parse to pull out preprocessor and include folder settings). None of that was documented, and it turned out to be far too esoteric to be being talked about on the web (in other words, my google-fu failed completely). I was able to get the plug-in bits going just by reference to our code, so that was nothing clever. The project file format however presented quite a challenge as the device settings and includes just aren't documented, so I had to reverse engineer them from the Atmel header files, and test my assumptions by building unit tests (I wrote those first using TDD) and analysing test projects to check that the results matched my assumptions.
- Visual Studio 2012 adds theming to the IDE, and as our code is generic (we integrate into both Visual Studio and Eclipse) and written in C++ using WTL, we can't use anything but plain Win32 to re-theme controls. Win32 UxTheme (i.e. XP style) controls do not support custom colour schemes (ever seen an XP style button in any colour other than OS default?), so we had to implement custom versions of every control we use in the main IDE, and to do that figure out how to draw UxTheme control parts with custom colours. The UxTheme API is poorly documented at the best of times, but *nobody* has described how to do this - I had to work it out from first principles (it involves a memory DC and colour transformations) and prove the concept. To cut a long story short, the proof worked and then the google-fu kicked in - find examples of custom controls of each type we need (button, combobox, list control, header control etc.) to use as references while designing WTL templates t
-
Go to StackOverflow, Click on Ask a question. And type your question, but don't submit. You'll see your question has been asked a 1000 times, and it's been answered a 4000 times. And the next question you are going to ask in succession will also be there in the same thread. wait a minute, oops StackOverFlow :rolleyes: Just kidding, CP first always, but lately I referred a bunch of Q&As from StackOverflow. It was quite useful. And even Google lists them on Top. Don't know why CP forum messages are pushed down. And about typing the search key, Never do the girls way:
I Want to know how can I add multicast delegate in my C# sharp project
Go by the man's way:
Multicast delegate + C#
You get more returns.
Starting to think people post kid pics in their profiles because that was the last time they were cute - Jeremy.
-
Even better way RTFM, which very few people seem to do nowadays.
Software Kinetics - Dependable Software news
-
There are already a lot of good answers to your question, but you should also check out this article written by Christian Graus: How to Use Google and Other Tips for Finding Programming Help[^] Soren Madsen
I have to admit I didn't know about Christian's article. A big 5!
Anna :rose: Tech Blog | Visual Lint "Why would anyone prefer to wield a weapon that takes both hands at once, when they could use a lighter (and obviously superior) weapon that allows you to wield multiple ones at a time, and thus supports multi-paradigm carnage?"
-
Dear all, I need a bit of help here. I feel like being surpassed by junior staff in the company. One day the client has a requirement. Both me and the junior staff do not know how to do it. I rely more on books or talk to other coworkers for hint. The junior staff, however, are very good at using Google. After a bit of time, he is able to crawl / find a good solution. I would like to ask what you do when you face a technical challenge. If you use Google, how would you get to the answer fast? In other words, how are you able to know what the keywords are to type in Google? (Of course, if it is related to some specific terms, just type that in. But from time to time, it seems like I have to type in a bit more than that. And I think I am not good at this.) Example would be welcome.
-
Learn these[^] that might help with google searching. The other thing to do is to be able to recognise good results by skim reading the google results - I have as many results as I can on one page, and scroll quickly through waiting for something to catch my eye, When in the zone it's almost like magix; many times I have had people tell me they can't find some information and a few clicks later I have found exactly what they were looking for. Sometimes the '-' operator can be V useful to filter out the dross - especially when looking for something that conatains common words with several meanings - if the first 10 hits are from eBay, add '-ebay' to your search string, for example. the other side of things is to simply allow the junior peeps to go google the answer and appreciate that you are part of a team and not in competition with them. If you want the kudos, just make sure the customer hears you say "Oh, go google that for me, would you Tom?"
MVVM# - See how I did MVVM my way ___________________________________________ Man, you're a god. - walterhevedeich 26/05/2011 .\\axxx (That's an 'M')
Yes. Will learn this. Sounds useful.
-
As it turns out, google search engine is quite smart in understanding couple of good search query. How ever, i most of the time do not depend on it. Probably its because i love forums like codeproject, stackoverflow
Forum is good to ask questions, but once you post, you just do not when you will get an answer back. Google allow you to actively search for answer. At least you can tell your boss about that. :-D
-
Dear all, I need a bit of help here. I feel like being surpassed by junior staff in the company. One day the client has a requirement. Both me and the junior staff do not know how to do it. I rely more on books or talk to other coworkers for hint. The junior staff, however, are very good at using Google. After a bit of time, he is able to crawl / find a good solution. I would like to ask what you do when you face a technical challenge. If you use Google, how would you get to the answer fast? In other words, how are you able to know what the keywords are to type in Google? (Of course, if it is related to some specific terms, just type that in. But from time to time, it seems like I have to type in a bit more than that. And I think I am not good at this.) Example would be welcome.
Is this junior/senior as in time? Because, no disrespect intended, this doesn't sound like a very senior question! When you're given a requirement you should be able to mentally break it down into the rough steps you need to do in order to complete it. A lot of those will be simple stuff that you can Google if you're not familiar with the language/framework, e.g. file or database access, updating UI controls, simple aggregations or filtering of data. Possibly, buried right in the depths of the requirement, might be something where you actually have to think – but in my experience at least 95% of code is simple and has been done before. The skill is in translating a requirement into steps that you can look up if you don't already know how to do them (though, really, anyone in a senior position should know how to do most of the common ones already). When I'm searching I use the language or framework and the thing that I'm trying to work out how to do. For example I've been having some trouble caused by an OS upgrade lately so my search history is full of 'java character encoding' and 'ant character encoding' and the like. If you're partially familiar with the framework you might know where to look for inspiration; for example if there were a C# module involved I'd know to search for 'C# StreamReader' or 'C# TextReader' as a place to look to similar issues.
-
Dear all, I need a bit of help here. I feel like being surpassed by junior staff in the company. One day the client has a requirement. Both me and the junior staff do not know how to do it. I rely more on books or talk to other coworkers for hint. The junior staff, however, are very good at using Google. After a bit of time, he is able to crawl / find a good solution. I would like to ask what you do when you face a technical challenge. If you use Google, how would you get to the answer fast? In other words, how are you able to know what the keywords are to type in Google? (Of course, if it is related to some specific terms, just type that in. But from time to time, it seems like I have to type in a bit more than that. And I think I am not good at this.) Example would be welcome.
I focus my technical searches at StackOverflow and CodeProject - this works when I'm trying to answer questions like "How do I do XYZ using
foo
?" For example, figuring out how to implement sorting in a SilverlightDataGrid
is easily accomplished by Googling SO/CP for "silverlight datagrid sort" which should lead you to aCollectionViewSource
. Then, it's a simple matter of hacking together a small POC to determine how to use this class - MSDN comes in handy here, because you already know what class you should be using and are just searching for its properties and methods. Unfortunately, most of the time I'm trying to determine answers to more nebulous questions, like "What's the best/recommended way to design a large-scale JS app?" In this case, I'm not looking for a cookie cutter solution (there isn't any), but rather opinions from acknowledged authorities and people in the know. I find these in blogs, white papers and (sometimes), discussions on SO, and discuss my findings with others before arriving at a conclusion. Hope this helps. /raviMy new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
-
Your question is too generic, your google-fu will have to improve, I'm not a native english speaker and some times I face problems to get the right information, but Google works always in a good way: it is fast and direct. Try and try it again is the only way to get it, some times if I don't know how to search for something then I come here and ask for advice. Let's say you are working in C++, putting the keyword C++ in your search will narrow your results... Good luck!
[www.tamautomation.com] Robots, CNC and PLC machines for grinding and polishing.
google-fu ... I like that.
Charlie Gilley You're going to tell me what I want to know, or I'm going to beat you to death in your own house. "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
-
Is this junior/senior as in time? Because, no disrespect intended, this doesn't sound like a very senior question! When you're given a requirement you should be able to mentally break it down into the rough steps you need to do in order to complete it. A lot of those will be simple stuff that you can Google if you're not familiar with the language/framework, e.g. file or database access, updating UI controls, simple aggregations or filtering of data. Possibly, buried right in the depths of the requirement, might be something where you actually have to think – but in my experience at least 95% of code is simple and has been done before. The skill is in translating a requirement into steps that you can look up if you don't already know how to do them (though, really, anyone in a senior position should know how to do most of the common ones already). When I'm searching I use the language or framework and the thing that I'm trying to work out how to do. For example I've been having some trouble caused by an OS upgrade lately so my search history is full of 'java character encoding' and 'ant character encoding' and the like. If you're partially familiar with the framework you might know where to look for inspiration; for example if there were a C# module involved I'd know to search for 'C# StreamReader' or 'C# TextReader' as a place to look to similar issues.
OK. I see your point. Let me go over the technical aspect. There is a sale system. There are about several hundreds of transactions in a day. The data is stored in a database. For each transaction, there is transaction header (usual stuff like customer id, transaction id, number of SKU involved, etc). There is also transaction detail (like item id, quantity of this item customer wants, etc). As you may see it, header to detail is a 1 to many relationship. One item we have to produce is an executable. This program will be run at end of each business day to output all transaction data to one XML file. This XML file is 3 level deep. It is similar to this:
<SalesRecord>
<VBAK SalesID="00001">
<AUART>SELL</AUART>
<SPART>GO</SPART>
<KUNNR>0000752134</KUNNR>
<BOTNK>2012071211085671S</BOTNK>
<VDATU>20120711</VDATU>
<VBAP item="10">
<MATNR>700911581</MATNR>
<KWMENG>3</KWMENG>
<UVKME>UC<UVKME>
</VBAP>
<VBAP item="20">
<MATNR>700912313</MATNR>
<KWMENG>4</KWMENG>
<UVKME>UC<UVKME>
</VBAP>
</VBAK>
<VBAK SalesID="00002">
...
</VBAK>
</SalesRecord>It looks simple at first. Without much experience in processing this kind of XML, I think we could just let the program to write the XML out using something like XMLWriter(). This basically output a database table to XML format. Well in the database, the header and detail of each transaction are stored in two different tables! Somehow the person suppose to help me out use another way. He write a stored procedure to output 3 tables. In the program, he use DataAdapter to hold 3 tables (da.TableMappings.Add()). He then set mapping type of certain DataColumn (to be MappingType.Attribute or Mapping.Hidden). Afterward, use XMLDocument.LoadXML() to write out the XML file. Well there you have it.
-
OK. I see your point. Let me go over the technical aspect. There is a sale system. There are about several hundreds of transactions in a day. The data is stored in a database. For each transaction, there is transaction header (usual stuff like customer id, transaction id, number of SKU involved, etc). There is also transaction detail (like item id, quantity of this item customer wants, etc). As you may see it, header to detail is a 1 to many relationship. One item we have to produce is an executable. This program will be run at end of each business day to output all transaction data to one XML file. This XML file is 3 level deep. It is similar to this:
<SalesRecord>
<VBAK SalesID="00001">
<AUART>SELL</AUART>
<SPART>GO</SPART>
<KUNNR>0000752134</KUNNR>
<BOTNK>2012071211085671S</BOTNK>
<VDATU>20120711</VDATU>
<VBAP item="10">
<MATNR>700911581</MATNR>
<KWMENG>3</KWMENG>
<UVKME>UC<UVKME>
</VBAP>
<VBAP item="20">
<MATNR>700912313</MATNR>
<KWMENG>4</KWMENG>
<UVKME>UC<UVKME>
</VBAP>
</VBAK>
<VBAK SalesID="00002">
...
</VBAK>
</SalesRecord>It looks simple at first. Without much experience in processing this kind of XML, I think we could just let the program to write the XML out using something like XMLWriter(). This basically output a database table to XML format. Well in the database, the header and detail of each transaction are stored in two different tables! Somehow the person suppose to help me out use another way. He write a stored procedure to output 3 tables. In the program, he use DataAdapter to hold 3 tables (da.TableMappings.Add()). He then set mapping type of certain DataColumn (to be MappingType.Attribute or Mapping.Hidden). Afterward, use XMLDocument.LoadXML() to write out the XML file. Well there you have it.
There can be more than one answer to a problem. Like you I'd have written the XML file manually, from two queries (select from transaction, and select from transaction_detail where transaction_id in [list of IDs from the first query], grouped by transaction_id on the code side).